test and fix #1232202: [bookmarks] broken link for startupviews stable
authorSylvain Thénault <sylvain.thenault@logilab.fr>
Fri, 05 Nov 2010 12:43:25 +0100
branchstable
changeset 6682 bdf9424b499c
parent 6681 674461009c7c
child 6683 68cfebd3b9f3
test and fix #1232202: [bookmarks] broken link for startupviews
web/formwidgets.py
web/test/unittest_formwidgets.py
--- 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()