require File.dirname(__FILE__) + '/test_helper' class MultipleSelectTest < Test::Unit::TestCase #:nodoc: include FightTheMelons::Helpers::FormMultipleSelectHelper fixtures :nodes # Have to fake the default static variables because they jump from one test to # another. Yes, this is bad bad bad coding. def setup FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.outer_class = nil FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.inner_class = nil FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.level_class = nil FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.alternate_class = 'alt' FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.alternate = false FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.position = :right FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.include_hidden_field = false end def test_cfms_empty assert_equal "", checkboxes_for_multiple_select('name', []) end def test_cfms_one_item assert_dom_equal "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test']) end def test_cfms_two_items assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test1', 'test2']) end def test_cfms_array_not_strings assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', [1, 2]) end def test_cfms_text_value_array assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', [['first test', 1], ['second test', 2]]) end def test_cfms_hash assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', {'first test' => 1, 'second test' => 2}) end def test_cfms_array_with_selected assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', [1, 2], [1]) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', [1, 2], [2]) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', [1, 2], [1,2]) end def test_cfms_text_value_array_with_selected assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', [['first test', 1], ['second test', 2]], [1]) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', [['first test', 1], ['second test', 2]], [2]) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', [['first test', 1], ['second test', 2]], [1,2]) end def test_cfms_hash_with_selected assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', { 'Spain' => 'esp', 'England' => 'eng' }, ['esp']) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', { 'Spain' => 'esp', 'England' => 'eng' }, ['eng']) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', { 'Spain' => 'esp', 'England' => 'eng' }, ['esp', 'eng']) end def test_cfms_position assert_dom_equal "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test'], [], :position => :right) assert_dom_equal "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test'], [], :position => :left) end def test_cfms_position_variable FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.position = :right assert_dom_equal "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test'], []) assert_dom_equal "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test'], [], :position => :left) end def test_cfms_inner_class assert_dom_equal "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test'], [], :inner_class => 'testclass') end def test_cfms_inner_class_variable FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.inner_class = 'classtest' assert_dom_equal "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test'], []) assert_dom_equal "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test'], [], :inner_class => 'testclass') end def test_cfms_alternate assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test1', 'test2'], [], :alternate => true) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test1', 'test2'], [], :alternate => true, :inner_class => 'testclass') assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test1', 'test2'], [], :alternate => true, :alternate_class => 'alternative') assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test1', 'test2'], [], :alternate => true, :initial_alternate => false) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test1', 'test2'], [], :alternate => true, :initial_alternate => true) end def test_cfms_alternate_variable FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.alternate = true assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test1', 'test2'], []) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test1', 'test2'], [], :alternate => false) end def test_cfms_alternate_class_variable FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.alternate_class = 'other' assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test1', 'test2'], [], :alternate => true) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', ['test1', 'test2'], [], :alternate => true, :alternate_class => 'alternative') end def test_cfms_disabled assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', [1, 2], [], :disabled => false) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', [1, 2], [], :disabled => true) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('name', [1, 2], [], :disabled => [1]) end def test_cfcfms assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "
  • \n" + "
  • " + "
  • ", checkboxes_from_collection_for_multiple_select('name', Node.find_all_by_parent_id(1), :id, :name) assert_dom_equal "", checkboxes_from_collection_for_multiple_select('name', Node.find_all_by_parent_id(33), :id, :name) # id 33 doesn't exist nor have children end def test_cfcms_with_selected assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "
  • \n" + "
  • " + "
  • ", checkboxes_from_collection_for_multiple_select('name', Node.find_all_by_parent_id(1), :id, :name, [2, 4]) end def test_ms assert_dom_equal "", multiple_select('name', ['test']) end def test_ms_with_selected assert_dom_equal "", multiple_select('name', ['test1', 'test2'], :selected_items => ['test1']) end def test_ms_outer_class assert_dom_equal "", multiple_select('name', ['test'], :outer_class => 'testclass') end def test_ms_outer_class_variable FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.outer_class = 'classtest' assert_dom_equal "", multiple_select('name', ['test']) assert_dom_equal "", multiple_select('name', ['test'], :outer_class => 'testclass') end def test_ms_hidden_field assert_dom_equal "\n" + "", multiple_select('name', ['test'], :include_hidden_field => true) end def test_ms_hidden_field_variable FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.include_hidden_field = true assert_dom_equal "\n" + "", multiple_select('name', ['test']) assert_dom_equal "", multiple_select('name', ['test'], :include_hidden_field => false) end def test_cms assert_dom_equal "", collection_multiple_select('name', Node.find_all_by_parent_id(1), :id, :name) end def test_cms_with_selected assert_dom_equal "", collection_multiple_select('name', Node.find_all_by_parent_id(1), :id, :name, :selected_items => [2, 4]) end def test_cms_outer_class assert_dom_equal "", collection_multiple_select('name', Node.find_all_by_parent_id(1), :id, :name, :outer_class => 'testclass') end def test_cftfms assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "\n
  • \n" + "
  • " + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name) end def test_cftfms_depth assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "\n
  • \n" + "
  • " + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, [], :depth => 1) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "\n
  • \n" + "
  • " + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, [], :depth => 2) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "
  • \n" + "
  • " + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, [], :depth => 0) end def test_cftfms_inner_class assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "\n
  • \n" + "
  • " + "" + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, [], :inner_class => 'testclass') end def test_cftfms_level_class assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "\n
  • \n" + "
  • " + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, [], :level_class => 'level') assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "\n
  • \n" + "
  • " + "" + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, [], :level_class => 'level', :inner_class => 'testclass') assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "\n
  • \n" + "
  • " + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, [], :level_class => 'level', :initial_level => 2) end def test_cftfms_level_class_variable FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.level_class = 'lvl' assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "\n
  • \n" + "
  • " + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, []) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "\n
  • \n" + "
  • " + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, [], :level_class => 'level') end def test_cftfms_child_method assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "\n
  • \n" + "
  • " + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, [], :child_method => :alt_children) end def test_cftfms_alternate assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "\n
  • \n" + "
  • " + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, [], :alternate => true) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "\n
  • \n" + "
  • " + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, [], :alternate => true, :initial_alternate => false) assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "\n
  • \n" + "
  • " + "
  • ", checkboxes_from_tree_for_multiple_select('name', nodes(:n3).children, :id, :name, [], :alternate => true, :initial_alternate => true) end def test_cfms_trick_name assert_dom_equal "
  • " + "" + "
  • \n" + "
  • " + "" + "
  • ", checkboxes_for_multiple_select('object[collection_singular_ids]', ['test1', 'test2']) end end