require File.dirname(__FILE__) + '/test_helper' class MultipleSelectTest < Test::Unit::TestCase #:nodoc: include FightTheMelons::Helpers::FormMultipleSelectHelper fixtures :nodes, :fathers, :sons # 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 end def test_cfms_empty assert_equal "", checkboxes_for_multiple_select('name', []) end def test_cfms_one_item assert_dom_equal < END end def test_cfms_two_items assert_dom_equal <
  • END end def test_cfms_array_not_strings assert_dom_equal <
  • END end def test_cfms_text_value_array assert_dom_equal <
  • END end def test_cfms_hash assert_dom_equal < 1, 'second test' => 2})
  • END end def test_cfms_array_with_selected assert_dom_equal <
  • END assert_dom_equal <
  • END assert_dom_equal <
  • END end def test_cfms_text_value_array_with_selected assert_dom_equal <
  • END assert_dom_equal <
  • END assert_dom_equal <
  • END end def test_cfms_hash_with_selected assert_dom_equal < 'esp', 'England' => 'eng' }, ['esp'])
  • END assert_dom_equal < 'esp', 'England' => 'eng' }, ['eng'])
  • END assert_dom_equal < 'esp', 'England' => 'eng' }, ['esp', 'eng'])
  • END end def test_cfms_position assert_dom_equal < :right)
  • END assert_dom_equal < :left)
  • END end def test_cfms_position_variable FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.position = :right assert_dom_equal < END assert_dom_equal < :left)
  • END end def test_cfms_inner_class assert_dom_equal < 'testclass')
  • END end def test_cfms_inner_class_variable FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.inner_class = 'classtest' assert_dom_equal < END assert_dom_equal < 'testclass')
  • END end def test_cfms_alternate assert_dom_equal < true)
  • END assert_dom_equal < true, :inner_class => 'testclass')
  • END assert_dom_equal < true, :alternate_class => 'alternative')
  • END assert_dom_equal < true, :initial_alternate => false)
  • END assert_dom_equal < true, :initial_alternate => true)
  • END end def test_cfms_alternate_variable FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.alternate = true assert_dom_equal <
  • END assert_dom_equal < false)
  • END end def test_cfms_alternate_class_variable FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.alternate_class = 'other' assert_dom_equal < true)
  • END assert_dom_equal < true, :alternate_class => 'alternative')
  • END end def test_cfms_disabled assert_dom_equal < false)
  • END assert_dom_equal < true)
  • END assert_dom_equal < [1])
  • END end def test_cfcfms assert_dom_equal <
  • END 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 <
  • END end def test_ms @f = Father.new assert_dom_equal <
  • END end def test_ms_with_outer_class @f = Father.new assert_dom_equal < 'test_class')
    END end def test_ms_selected @f = Father.new assert_dom_equal <
  • END end def test_ms_empty @f = Father.new assert_dom_equal < END end def test_mst assert_dom_equal <
  • END end def test_mst_with_outer_class assert_dom_equal < 'test_class')
    END end def test_mst_with_selected_items assert_dom_equal < ['test'])
    END end def test_mst_empty assert_dom_equal < END end def test_ms_selected_items @n = Node.new assert_dom_equal < [2] )
    END end def test_ms_selected_items_nil @n = Node.new assert_dom_equal < nil )
    END end def test_ms_outer_class_variable @f = Father.new FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.outer_class = 'classtest' assert_dom_equal <
  • END assert_dom_equal < 'testclass')
    END end def test_ms_nil_value @n = Node.new assert_dom_equal < 'value1', 'item2' => 'value2'} )
    END end def test_cms Father.class_eval 'has_many :sons' Son.class_eval 'belongs_to :father' @f = Father.new @f.son_ids = [] assert_dom_equal <
  • END end def test_cms_with_outer_class Father.class_eval 'has_many :sons' Son.class_eval 'belongs_to :father' @f = Father.new @f.son_ids = [] assert_dom_equal < 'test_class')
    END end def test_cms_with_value Father.class_eval 'has_many :sons' Son.class_eval 'belongs_to :father' @f = Father.new @f.son_ids = [4, 5, 6] assert_dom_equal <
  • END end def test_cms_without_items Father.class_eval 'has_many :sons' Son.class_eval 'belongs_to :father' @f = Father.new @f.son_ids = [] assert_dom_equal < END end def test_cmst assert_dom_equal <
  • END end def test_cmst_with_outer_class assert_dom_equal < 'test_class')
    END end def test_cmst_with_selected_items assert_dom_equal < [4, 5, 6])
    END end def test_cmst_without_items assert_dom_equal < END end def test_cms_selected_items Father.class_eval 'has_many :sons' Son.class_eval 'belongs_to :father' @f = Father.new @f.son_ids = [] assert_dom_equal < [1, 2, 3])
    END end def test_cms_selected_items_nil Father.class_eval 'has_many :sons' Son.class_eval 'belongs_to :father' @f = Father.new @f.son_ids = [] assert_dom_equal < nil)
    END end def test_tms_selected_none @n = Node.new assert_dom_equal <
  • END end def test_tms_with_outer_class @n = Node.new assert_dom_equal < 'test_class')
    END end def test_tms_selected_some @n = Node.new assert_dom_equal <
  • END end def test_tms_without_items @n = Node.new assert_dom_equal < END end def test_tmst assert_dom_equal <
  • END end def test_tmst_with_outer_class assert_dom_equal < 'test_class')
    END end def test_tmst_with_selected_items assert_dom_equal < [12])
    END end def test_tmst_without_items assert_dom_equal < END end def test_tms_selected_items @n = Node.new assert_dom_equal < [11])
    END end def test_tms_selected_items_nil @n = Node.new assert_dom_equal < nil)
    END end def test_cftfms assert_dom_equal <
  • \n
  • END end def test_cftfms_depth assert_dom_equal < 1), "Depth 1"
  • \n
  • END assert_dom_equal < 2), "Depth 2"
  • \n
  • END assert_dom_equal < 0), "Depth 0"
  • END end def test_cftfms_inner_class assert_dom_equal < 'testclass')
  • \n
  • END end def test_cftfms_level_class assert_dom_equal < 'level'), "With level class"
  • \n
  • END assert_dom_equal < 'level', :inner_class => 'testclass'), "With level and inner class"
  • \n
  • END assert_dom_equal < 'level', :initial_level => 2), "With level class and initial level"
  • \n
  • END end def test_cftfms_level_class_variable FightTheMelons::Helpers::FormMultipleSelectHelperConfiguration.level_class = 'lvl' assert_dom_equal <
  • \n
  • END assert_dom_equal < 'level'), "With explicit level class"
  • \n
  • END end def test_cftfms_child_method assert_dom_equal < :alt_children)
  • \n
  • END end def test_cftfms_alternate assert_dom_equal < true), "With alternate = true"
  • \n
  • END assert_dom_equal < true, :initial_alternate => false), "With alternate = true and initial alternate = false"
  • \n
  • END assert_dom_equal < true, :initial_alternate => true), "With alternate = true and initial alternate = true"
  • \n
  • END end end