web/test/unittest_formwidgets.py
changeset 8029 805d4e121b65
parent 6781 5062d86d6ffe
child 8665 e65af61bde7d
equal deleted inserted replaced
8028:58e9bc8a1f2c 8029:805d4e121b65
    30     config.bootstrap_cubes()
    30     config.bootstrap_cubes()
    31     schema = config.load_schema()
    31     schema = config.load_schema()
    32 
    32 
    33 class WidgetsTC(TestCase):
    33 class WidgetsTC(TestCase):
    34 
    34 
    35     def test_state_fields(self):
    35     def test_editableurl_widget(self):
    36         field = formfields.guess_field(schema['Bookmark'], schema['path'])
    36         field = formfields.guess_field(schema['Bookmark'], schema['path'])
    37         widget = formwidgets.EditableURLWidget()
    37         widget = formwidgets.EditableURLWidget()
    38         req = fake.FakeRequest(form={'path-subjectfqs:A': 'param=value&vid=view'})
    38         req = fake.FakeRequest(form={'path-subjectfqs:A': 'param=value&vid=view'})
    39         form = mock(_cw=req, formvalues={}, edited_entity=mock(eid='A'))
    39         form = mock(_cw=req, formvalues={}, edited_entity=mock(eid='A'))
    40         self.assertEqual(widget.process_field_data(form, field),
    40         self.assertEqual(widget.process_field_data(form, field),
    41                          '?param=value%26vid%3Dview')
    41                          '?param=value%26vid%3Dview')
    42 
    42 
       
    43     def test_bitselect_widget(self):
       
    44         field = formfields.guess_field(schema['CWAttribute'], schema['ordernum'])
       
    45         field.choices = [('un', '1',), ('deux', '2',)]
       
    46         widget = formwidgets.BitSelect(settabindex=False)
       
    47         req = fake.FakeRequest(form={'ordernum-subject:A': ['1', '2']})
       
    48         form = mock(_cw=req, formvalues={}, edited_entity=mock(eid='A'),
       
    49                     form_previous_values=())
       
    50         self.assertMultiLineEqual(widget._render(form, field, None),
       
    51                              '''\
       
    52 <select id="ordernum-subject:A" multiple="multiple" name="ordernum-subject:A" size="2">
       
    53 <option selected="selected" value="2">deux</option>
       
    54 <option selected="selected" value="1">un</option>
       
    55 </select>''')
       
    56         self.assertEqual(widget.process_field_data(form, field),
       
    57                          3)
       
    58 
    43 if __name__ == '__main__':
    59 if __name__ == '__main__':
    44     unittest_main()
    60     unittest_main()