Ejemplo n.º 1
0
    def test_data_converter_tuple(self):
        from plone.app.widgets.dx import AjaxSelectWidget
        from plone.app.widgets.dx import AjaxSelectWidgetConverter

        field = Tuple(__name__='tuplefield', value_type=TextLine())
        widget = AjaxSelectWidget(self.request)
        widget.field = field
        converter = AjaxSelectWidgetConverter(field, widget)

        self.assertEqual(
            converter.toFieldValue(''),
            field.missing_value,
        )

        self.assertEqual(
            converter.toFieldValue('123;456;789'),
            ('123', '456', '789'),
        )

        self.assertEqual(
            converter.toWidgetValue(tuple()),
            None,
        )

        self.assertEqual(
            converter.toWidgetValue(('123', '456', '789')),
            '123;456;789',
        )
Ejemplo n.º 2
0
 def test_widget_tuple_orderable(self):
     from plone.app.widgets.dx import AjaxSelectWidget
     widget = AjaxSelectWidget(self.request)
     widget.field = Tuple(__name__='selectfield')
     self.assertEqual(
         {
             'name': None,
             'value': u'',
             'pattern': 'select2',
             'pattern_options': {'orderable': True, 'separator': ';'},
         },
         widget._base_args(),
     )
Ejemplo n.º 3
0
 def test_widget_set_not_orderable(self):
     from plone.app.widgets.dx import AjaxSelectWidget
     widget = AjaxSelectWidget(self.request)
     # A set is not orderable
     widget.field = Set(__name__='selectfield')
     self.assertEqual(
         {
             'name': None,
             'value': None,
             'pattern': 'select2',
             'pattern_options': {'separator': ';'},
         },
         widget._base_args(),
     )
Ejemplo n.º 4
0
 def test_widget_choice(self):
     from plone.app.widgets.dx import AjaxSelectWidget
     from zope.schema.interfaces import ISource
     widget = AjaxSelectWidget(self.request)
     source = Mock()
     alsoProvides(source, ISource)
     widget.field = Choice(__name__='choicefield', source=source)
     widget.name = 'choicefield'
     self.assertEqual(
         {
             'name': 'choicefield',
             'value': u'',
             'pattern': 'select2',
             'pattern_options': {
                 'separator': ';',
                 'maximumSelectionSize': 1,
                 'vocabularyUrl':
                 'http://127.0.0.1/++widget++choicefield/@@getSource',
                 },
         },
         widget._base_args(),
     )