diff -r 000000000000 -r b97547f5f1fa web/test/unittest_widgets.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/test/unittest_widgets.py Wed Nov 05 15:52:50 2008 +0100
@@ -0,0 +1,364 @@
+"""cubicweb.common.widget unit tests
+
+"""
+
+from mx.DateTime import now
+NOW = now()
+from logilab.common.testlib import unittest_main
+from cubicweb.devtools.apptest import EnvBasedTC
+
+from cubicweb.web.widgets import widget, AutoCompletionWidget
+
+
+class WidgetsTC(EnvBasedTC):
+
+ def get_widget(self, etype, rname, rtype):
+ rschema = self.schema[rname]
+ return widget(self.vreg, etype, rschema, rtype, role='subject')
+
+
+ def test_hidden_widget(self):
+ w = self.get_widget('State', 'eid', 'Int')
+ self.assertEquals(w.name, 'eid')
+ self.assertEquals(w.render_example(self.request()), '')
+ self.assertDictEquals(w.attrs, {})
+ entity = self.etype_instance('State')
+ entity.eid = 'X'
+ self.assertEquals(w.required(entity), True)
+ self.assertEquals(w.render(entity), '')
+ self.assertEquals(w.edit_render(entity),
+ u'')
+
+ def test_textarea_widget(self):
+ self.add_entity('EProperty', pkey=u'ui.fckeditor', value=u'')
+ self.commit()
+ w = self.get_widget('State', 'description', 'String')
+ self.assertEquals(w.name, 'description')
+ self.assertEquals(w.render_example(self.request()), '')
+ self.assertDictEquals(w.attrs, {'accesskey': 'd'})
+ entity = self.etype_instance('State')
+ entity.eid = 'X'
+ entity
+ self.assertEquals(w.required(entity), False)
+ self.assertEquals(w.render(entity), '')
+ self.assertTextEquals(w.edit_render(entity),
+ u'''
+
+
+
''')
+
+ def test_textarea_widget_previous_value(self):
+ self.add_entity('EProperty', pkey=u'ui.fckeditor', value=u'')
+ self.commit()
+ w = self.get_widget('State', 'description', 'String')
+ req = self.request()
+ req.data['formvalues'] = {'description:X': 'a description'}
+ entity = self.etype_instance('State', req)
+ entity.eid = 'X'
+ self.assertEquals(w.required(entity), False)
+ self.assertEquals(w.render(entity), '')
+ self.assertTextEquals(w.edit_render(entity),
+ u'''
+
+
+
''')
+
+ def test_fckeditor_widget(self):
+ w = self.get_widget('State', 'description', 'String')
+ req = self.request()
+ entity = self.etype_instance('State', req)
+ entity.eid = 'X'
+ self.assertEquals(w.required(entity), False)
+ self.assertEquals(w.render(entity), '')
+ self.assertTextEquals(w.edit_render(entity),
+ u'''
+
+
+''')
+
+ def test_string_widget(self):
+ w = self.get_widget('Personne', 'nom', 'String')
+ self.assertEquals(w.name, 'nom')
+ self.assertEquals(w.render_example(self.request()), '')
+ self.assertDictEquals(w.attrs, {'accesskey': 'n', 'maxlength': 64, 'size': 40})
+ entity = self.etype_instance('Personne')
+ entity.eid = 'X'
+ self.assertEquals(w.required(entity), True)
+ self.assertEquals(w.render(entity), '')
+ self.assertEquals(w.edit_render(entity),
+ u'\n'
+ '')
+
+ def test_string_widget_previous_value(self):
+ w = self.get_widget('Personne', 'nom', 'String')
+ self.assertEquals(w.name, 'nom')
+ self.assertEquals(w.render_example(self.request()), '')
+ self.assertDictEquals(w.attrs, {'accesskey': 'n', 'maxlength': 64, 'size': 40})
+ req = self.request()
+ req.data['formvalues'] = {'nom:X': 'a name'}
+ entity = self.etype_instance('Personne', req)
+ entity.eid = 'X'
+ self.assertEquals(w.required(entity), True)
+ self.assertEquals(w.render(entity), '')
+ self.assertEquals(w.edit_render(entity),
+ u'\n'
+ '')
+
+ def test_static_combo_widget(self):
+ w = self.get_widget('Personne', 'promo', 'String')
+ self.assertEquals(w.name, 'promo')
+ self.assertEquals(w.render_example(self.request()), '')
+ self.assertDictEquals(w.attrs, {})
+ entity = self.etype_instance('Personne')
+ entity.eid = 'X'
+ self.assertEquals(w.required(entity), False)
+ self.assertEquals(w.render(entity), '')
+ self.assertTextEquals(w.edit_render(entity),
+ u'\n\n'
+ '')
+
+ def test_static_combo_widget_previous_value(self):
+ w = self.get_widget('Personne', 'promo', 'String')
+ self.assertEquals(w.name, 'promo')
+ self.assertEquals(w.render_example(self.request()), '')
+ self.assertDictEquals(w.attrs, {})
+ req = self.request()
+ req.data['formvalues'] = {'promo:X': 'pasbon'}
+ entity = self.etype_instance('Personne', req)
+ entity.eid = 'X'
+ self.assertEquals(w.required(entity), False)
+ self.assertEquals(w.render(entity), '')
+ self.assertTextEquals(w.edit_render(entity),
+ u'\n\n'
+ '')
+
+ def test_integer_widget(self):
+ w = self.get_widget('Personne', 'tel', 'Int')
+ self.assertEquals(w.name, 'tel')
+ self.assertEquals(w.render_example(self.request()), '23')
+ self.assertDictEquals(w.attrs, {'accesskey': 't', 'maxlength': 15, 'size': 5})
+ entity = self.etype_instance('Personne')
+ entity.eid = 'X'
+ self.assertEquals(w.required(entity), False)
+ self.assertEquals(w.render(entity), '')
+ self.assertEquals(w.edit_render(entity),
+ u'\n'
+ '')
+
+ def test_integer_widget_previous_value(self):
+ w = self.get_widget('Personne', 'tel', 'Int')
+ self.assertEquals(w.name, 'tel')
+ self.assertEquals(w.render_example(self.request()), '23')
+ self.assertDictEquals(w.attrs, {'accesskey': 't', 'maxlength': 15, 'size': 5})
+ req = self.request()
+ req.data['formvalues'] = {'tel:X': '0123456789'}
+ entity = self.etype_instance('Personne', req)
+ entity.eid = 'X'
+ self.assertEquals(w.required(entity), False)
+ self.assertEquals(w.render(entity), '')
+ self.assertEquals(w.edit_render(entity),
+ u'\n'
+ '')
+
+ def test_datetime_widget(self):
+ w = self.get_widget('Personne', 'datenaiss', 'Datetime')
+ self.assertEquals(w.name, 'datenaiss')
+ now_ = now()
+ example = '%s, or without time: %s' % (
+ now_.strftime(self.vreg.property_value('ui.datetime-format')),
+ now_.strftime(self.vreg.property_value('ui.date-format')))
+ self.assertEquals(w.render_example(self.request()), example)
+ self.assertDictEquals(w.attrs, {'accesskey': 'd', 'maxlength': 16, 'size': 16})
+ entity = self.etype_instance('Personne')
+ entity.eid = 'X'
+ self.assertEquals(w.required(entity), False)
+ self.assertEquals(w.render(entity), '')
+ self.assertEquals(w.edit_render(entity),
+ u'\n'
+ ''
+ '\n