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)