--- a/web/formwidgets.py Fri Nov 05 12:22:42 2010 +0100
+++ b/web/formwidgets.py Fri Nov 05 12:43:25 2010 +0100
@@ -888,7 +888,9 @@
values = {}
path = req.form.get(field.input_name(form, 'path'))
if isinstance(path, basestring):
- path = path.strip() or None
+ path = path.strip()
+ if path is None:
+ path = u''
fqs = req.form.get(field.input_name(form, 'fqs'))
if isinstance(fqs, basestring):
fqs = fqs.strip() or None
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/test/unittest_formwidgets.py Fri Nov 05 12:43:25 2010 +0100
@@ -0,0 +1,44 @@
+# copyright 2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
+# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
+#
+# This file is part of CubicWeb.
+#
+# CubicWeb is free software: you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation, either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# CubicWeb is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License along
+# with CubicWeb. If not, see <http://www.gnu.org/licenses/>.
+"""unittests for cw.web.formwidgets"""
+
+from logilab.common.testlib import TestCase, unittest_main, mock_object as mock
+
+from cubicweb.devtools import TestServerConfiguration, fake
+from cubicweb.web import uicfg, formwidgets, formfields
+
+from cubes.file.entities import File
+
+def setup_module(*args):
+ global schema
+ config = TestServerConfiguration('data', apphome=WidgetsTC.datadir)
+ config.bootstrap_cubes()
+ schema = config.load_schema()
+
+class WidgetsTC(TestCase):
+
+ def test_state_fields(self):
+ field = formfields.guess_field(schema['Bookmark'], schema['path'])
+ widget = formwidgets.EditableURLWidget()
+ req = fake.FakeRequest(form={'path-subjectfqs:A': 'param=value&vid=view'})
+ form = mock(_cw=req, formvalues={}, edited_entity=mock(eid='A'))
+ self.assertEqual(widget.process_field_data(form, field),
+ '?param=value%26vid%3Dview')
+
+if __name__ == '__main__':
+ unittest_main()