from util import WebHelpersTestCase
import unittest
from webhelpers.rails.form_options import *
class TestFormOptionsHelper(WebHelpersTestCase):
def test_array_options_for_select(self):
self.assertEqual(
"\n\n",
options_for_select([ "", "USA", "Sweden" ]))
def test_array_options_for_select_with_selection(self):
self.assertEqual(
"\n\n",
options_for_select([ "Denmark", "", "Sweden" ], ""))
def test_array_options_for_select_with_selection_array(self):
self.assertEqual(
"\n\n",
options_for_select([ "Denmark", "", "Sweden" ], [ "", "Sweden" ]))
def test_array_options_for_string_include_in_other_string_bug_fix(self):
self.assertEqual(
"\n",
options_for_select([ "ruby", "rubyonrails" ], "rubyonrails"))
self.assertEqual(
"\n",
options_for_select([ "ruby", "rubyonrails" ], "ruby"))
self.assertEqual(
'\n\n',
options_for_select([ "ruby", "rubyonrails", None ], "ruby"))
def test_hash_options_for_select_with_dict(self):
self.assertEqual(
"\n",
options_for_select({ "$": "Dollar", "": "" }))
self.assertEqual(
"\n",
options_for_select({ "$": "Dollar", "": "" }, "Dollar"))
self.assertEqual(
"\n",
options_for_select({ "$": "Dollar", "": "" }, [ "Dollar", "" ]))
def test_options_for_select_from_objects(self):
class Something(object):
select_name = "something"
select_value = "The Something"
class SomethingElse(object):
select_name = "somethingelse"
select_value = "The Something Else"
self.assertEqual('\n',
options_for_select_from_objects([Something(), SomethingElse()], 'select_name'))
self.assertEqual('\n',
options_for_select_from_objects([Something(), SomethingElse()], 'select_name', selected='something'))
self.assertEqual('\n',
options_for_select_from_objects([Something(), SomethingElse()], 'select_name', 'select_value'))
self.assertEqual('\n',
options_for_select_from_objects([Something(), SomethingElse()], 'select_name', 'select_value', 'The Something'))
def test_options_for_select_from_dicts(self):
something = dict(select_name="something",
select_value="The Something")
somethingelse = dict(select_name="somethingelse",
select_value="The Something Else")
self.assertEqual('\n',
options_for_select_from_dicts([something, somethingelse], 'select_name'))
self.assertEqual('\n',
options_for_select_from_dicts([something, somethingelse], 'select_name', selected='something'))
self.assertEqual('\n',
options_for_select_from_dicts([something, somethingelse], 'select_name', 'select_value'))
self.assertEqual('\n',
options_for_select_from_dicts([something, somethingelse], 'select_name', 'select_value', 'The Something'))
if __name__ == '__main__':
suite = [unittest.makeSuite(TestFormOptionsHelper)]
for testsuite in suite:
unittest.TextTestRunner(verbosity=1).run(testsuite)