def test_widget_set_not_orderable(self): from plone.app.widgets.dx import SelectWidget widget = SelectWidget(self.request) widget.id = 'test-widget' # A set is not orderable widget.field = Set( __name__='selectfield', value_type=Choice(values=['one', 'two', 'three']) ) widget.terms = widget.field.value_type.vocabulary self.assertEqual( { 'multiple': True, 'name': None, 'pattern_options': { 'multiple': True, 'separator': ';'}, 'pattern': 'select2', 'value': (), 'items': [ ('one', 'one'), ('two', 'two'), ('three', 'three') ] }, widget._base_args(), )
def test_select(self): from plone.app.widgets.dx import SelectWidget request = TestRequest(environ={'HTTP_ACCEPT_LANGUAGE': 'en'}, example='example-value') widget = SelectWidget(request) widget.id = 'example' widget.name = 'example' widget.field = TextLine(__name__='selectfield') widget.field.vocabulary = SimpleVocabulary.fromValues( ['option1', 'option2', 'option3']) widget.terms = widget.field.vocabulary self.assertEqual( widget._widget_args(), { 'name': 'example', 'pattern': 'select2', 'pattern_options': {}, 'options': [('--NOVALUE--', u'No value'), ('option1', 'option1'), ('option2', 'option2'), ('option3', 'option3')], 'selected': (), }, )
def test_widget(self): from plone.app.widgets.dx import SelectWidget widget = SelectWidget(self.request) widget.id = 'test-widget' widget.field = Choice( __name__='selectfield', values=['one', 'two', 'three'] ) widget.terms = widget.field.vocabulary widget.field.required = True self.assertEqual( { 'multiple': None, 'name': None, 'pattern_options': {}, 'pattern': 'select2', 'value': (), 'items': [ ('one', 'one'), ('two', 'two'), ('three', 'three') ] }, widget._base_args(), ) widget.field.required = False self.assertEqual( { 'multiple': None, 'name': None, 'pattern_options': {'allowClear': True}, 'pattern': 'select2', 'value': (), 'items': [ (u'', u''), ('one', 'one'), ('two', 'two'), ('three', 'three') ] }, widget._base_args(), ) widget.field.required = True widget.multiple = True self.assertEqual( { 'multiple': True, 'name': None, 'pattern_options': {'separator': ';', 'multiple': True}, 'pattern': 'select2', 'value': (), 'items': [ ('one', 'one'), ('two', 'two'), ('three', 'three') ] }, widget._base_args(), ) widget.field.required = False widget.multiple = True self.assertEqual( { 'multiple': True, 'name': None, 'pattern_options': {'allowClear': True, 'separator': ';', 'multiple': True}, 'pattern': 'select2', 'value': (), 'items': [ ('one', 'one'), ('two', 'two'), ('three', 'three') ] }, widget._base_args(), ) widget.value = 'one' self.assertEqual( { 'multiple': True, 'name': None, 'pattern_options': {'allowClear': True, 'separator': ';', 'multiple': True}, 'pattern': 'select2', 'value': ('one'), 'items': [ ('one', 'one'), ('two', 'two'), ('three', 'three') ] }, widget._base_args(), )