require 'test/unit' require File.dirname(__FILE__) + "/../abstract_unit" class DateHelperTest < Test::Unit::TestCase include ActionView::Helpers::DateHelper include ActionView::Helpers::FormHelper silence_warnings do Post = Struct.new("Post", :written_on, :updated_at) end def test_distance_in_words from = Time.mktime(2004, 3, 6, 21, 41, 18) assert_equal "less than a minute", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 25)) assert_equal "5 minutes", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 46, 25)) assert_equal "about 1 hour", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 22, 47, 25)) assert_equal "about 3 hours", distance_of_time_in_words(from, Time.mktime(2004, 3, 7, 0, 41)) assert_equal "about 4 hours", distance_of_time_in_words(from, Time.mktime(2004, 3, 7, 1, 20)) assert_equal "2 days", distance_of_time_in_words(from, Time.mktime(2004, 3, 9, 15, 40)) # include seconds assert_equal "less than a minute", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 19), false) assert_equal "less than 5 seconds", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 19), true) assert_equal "less than 10 seconds", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 28), true) assert_equal "less than 20 seconds", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 38), true) assert_equal "half a minute", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 48), true) assert_equal "less than a minute", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 42, 17), true) assert_equal "1 minute", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 42, 18), true) assert_equal "1 minute", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 42, 28), true) assert_equal "2 minutes", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 42, 48), true) # test to < from assert_equal "about 4 hours", distance_of_time_in_words(Time.mktime(2004, 3, 7, 1, 20), from) assert_equal "less than 20 seconds", distance_of_time_in_words(Time.mktime(2004, 3, 6, 21, 41, 38), from, true) # test with integers assert_equal "less than a minute", distance_of_time_in_words(50) assert_equal "about 1 hour", distance_of_time_in_words(60*60) # more cumbersome test with integers assert_equal "less than a minute", distance_of_time_in_words(0, 50) assert_equal "about 1 hour", distance_of_time_in_words(60*60, 0) end def test_distance_in_words_date start_date = Date.new 1975, 1, 31 end_date = Date.new 1977, 4, 17 assert_not_equal("13 minutes", distance_of_time_in_words(start_date, end_date)) end def test_select_day expected = %(\n" assert_equal expected, select_day(Time.mktime(2003, 8, 16)) assert_equal expected, select_day(16) end def test_select_day_with_blank expected = %(\n" assert_equal expected, select_day(Time.mktime(2003, 8, 16), :include_blank => true) assert_equal expected, select_day(16, :include_blank => true) end def test_select_day_nil_with_blank expected = %(\n" assert_equal expected, select_day(nil, :include_blank => true) end def test_select_month expected = %(\n" assert_equal expected, select_month(Time.mktime(2003, 8, 16)) assert_equal expected, select_month(8) end def test_select_month_with_disabled expected = %(\n" assert_equal expected, select_month(Time.mktime(2003, 8, 16), :disabled => true) assert_equal expected, select_month(8, :disabled => true) end def test_select_month_with_field_name_override expected = %(\n" assert_equal expected, select_month(Time.mktime(2003, 8, 16), :field_name => 'mois') assert_equal expected, select_month(8, :field_name => 'mois') end def test_select_month_with_blank expected = %(\n" assert_equal expected, select_month(Time.mktime(2003, 8, 16), :include_blank => true) assert_equal expected, select_month(8, :include_blank => true) end def test_select_month_nil_with_blank expected = %(\n" assert_equal expected, select_month(nil, :include_blank => true) end def test_select_month_with_numbers expected = %(\n" assert_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_numbers => true) assert_equal expected, select_month(8, :use_month_numbers => true) end def test_select_month_with_numbers_and_names expected = %(\n" assert_equal expected, select_month(Time.mktime(2003, 8, 16), :add_month_numbers => true) assert_equal expected, select_month(8, :add_month_numbers => true) end def test_select_month_with_numbers_and_names_with_abbv expected = %(\n" assert_equal expected, select_month(Time.mktime(2003, 8, 16), :add_month_numbers => true, :use_short_month => true) assert_equal expected, select_month(8, :add_month_numbers => true, :use_short_month => true) end def test_select_month_with_abbv expected = %(\n" assert_equal expected, select_month(Time.mktime(2003, 8, 16), :use_short_month => true) assert_equal expected, select_month(8, :use_short_month => true) end def test_select_year expected = %(\n" assert_equal expected, select_year(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005) assert_equal expected, select_year(2003, :start_year => 2003, :end_year => 2005) end def test_select_year_with_disabled expected = %(\n" assert_equal expected, select_year(Time.mktime(2003, 8, 16), :disabled => true, :start_year => 2003, :end_year => 2005) assert_equal expected, select_year(2003, :disabled => true, :start_year => 2003, :end_year => 2005) end def test_select_year_with_field_name_override expected = %(\n" assert_equal expected, select_year(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :field_name => 'annee') assert_equal expected, select_year(2003, :start_year => 2003, :end_year => 2005, :field_name => 'annee') end def test_select_year_with_type_discarding expected = %(\n" assert_equal expected, select_year( Time.mktime(2003, 8, 16), :prefix => "date_year", :discard_type => true, :start_year => 2003, :end_year => 2005) assert_equal expected, select_year( 2003, :prefix => "date_year", :discard_type => true, :start_year => 2003, :end_year => 2005) end def test_select_year_descending expected = %(\n" assert_equal expected, select_year(Time.mktime(2005, 8, 16), :start_year => 2005, :end_year => 2003) assert_equal expected, select_year(2005, :start_year => 2005, :end_year => 2003) end def test_select_hour expected = %(\n" assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18)) end def test_select_hour_with_disabled expected = %(\n" assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true) end def test_select_hour_with_field_name_override expected = %(\n" assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'heure') end def test_select_hour_with_blank expected = %(\n" assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true) end def test_select_hour_nil_with_blank expected = %(\n" assert_equal expected, select_hour(nil, :include_blank => true) end def test_select_minute expected = %(\n" assert_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18)) end def test_select_minute_with_disabled expected = %(\n" assert_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true) end def test_select_minute_with_field_name_override expected = %(\n" assert_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'minuto') end def test_select_minute_with_blank expected = %(\n" assert_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true) end def test_select_minute_with_blank_and_step expected = %(\n" assert_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), { :include_blank => true , :minute_step => 15 }) end def test_select_minute_nil_with_blank expected = %(\n" assert_equal expected, select_minute(nil, :include_blank => true) end def test_select_minute_nil_with_blank_and_step expected = %(\n" assert_equal expected, select_minute(nil, { :include_blank => true , :minute_step => 15 }) end def test_select_second expected = %(\n" assert_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18)) end def test_select_second_with_disabled expected = %(\n" assert_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true) end def test_select_second_with_field_name_override expected = %(\n" assert_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'segundo') end def test_select_second_with_blank expected = %(\n" assert_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true) end def test_select_second_nil_with_blank expected = %(\n" assert_equal expected, select_second(nil, :include_blank => true) end def test_select_date expected = %(\n" expected << %(\n" expected << %(\n" assert_equal expected, select_date( Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]" ) end def test_select_date_with_disabled expected = %(\n" expected << %(\n" expected << %(\n" assert_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :disabled => true) end def test_select_date_with_no_start_year expected = %(\n" expected << %(\n" expected << %(\n" assert_equal expected, select_date( Time.mktime(Date.today.year, 8, 16), :end_year => Date.today.year+1, :prefix => "date[first]" ) end def test_select_date_with_no_end_year expected = %(\n" expected << %(\n" expected << %(\n" assert_equal expected, select_date( Time.mktime(2003, 8, 16), :start_year => 2003, :prefix => "date[first]" ) end def test_select_date_with_no_start_or_end_year expected = %(\n" expected << %(\n" expected << %(\n" assert_equal expected, select_date( Time.mktime(Date.today.year, 8, 16), :prefix => "date[first]" ) end def test_select_time_with_seconds expected = %(\n" expected << %(\n" expected << %(\n" assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => true) end def test_select_time_without_seconds expected = %(\n" expected << %(\n" assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18)) assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => false) end def test_date_select_with_zero_value expected = %(\n" expected << %(\n" expected << %(\n" assert_equal expected, select_date(0, :start_year => 2003, :end_year => 2005, :prefix => "date[first]") end def test_date_select_within_fields_for @post = Post.new @post.written_on = Date.new(2004, 6, 15) _erbout = '' fields_for :post, @post do |f| _erbout.concat f.date_select(:written_on) end expected = "\n" + "\n" + "\n" assert_dom_equal(expected, _erbout) end def test_datetime_select_within_fields_for @post = Post.new @post.updated_at = Time.local(2004, 6, 15, 16, 35) _erbout = '' fields_for :post, @post do |f| _erbout.concat f.datetime_select(:updated_at) end expected = "\n\n\n — \n : \n" assert_dom_equal(expected, _erbout) end def test_date_select_with_zero_value_and_no_start_year expected = %(\n" expected << %(\n" expected << %(\n" assert_equal expected, select_date(0, :end_year => Date.today.year+1, :prefix => "date[first]") end def test_date_select_with_zero_value_and_no_end_year expected = %(\n" expected << %(\n" expected << %(\n" assert_equal expected, select_date(0, :start_year => 2003, :prefix => "date[first]") end def test_date_select_with_zero_value_and_no_start_and_end_year expected = %(\n" expected << %(\n" expected << %(\n" assert_equal expected, select_date(0, :prefix => "date[first]") end def test_date_select_with_nil_value_and_no_start_and_end_year expected = %(\n" expected << %(\n" expected << %(\n" assert_equal expected, select_date(nil, :prefix => "date[first]") end def test_datetime_select_with_nil_value_and_no_start_and_end_year expected = %(\n" expected << %(\n" expected << %(\n" expected << %(\n" expected << %(\n" assert_equal expected, select_datetime(nil, :prefix => "date[first]") end end