From 07423bed4bf00626fcd9328557fa509fa86f6680 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Wed, 6 Dec 2006 19:15:24 +0000 Subject: Bob's raining patches: fixes date_helper bugs and usability issues. References #3811. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5685 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- .../test/template/active_record_helper_test.rb | 6 +- actionpack/test/template/date_helper_test.rb | 913 +++++++++++++++++---- 2 files changed, 765 insertions(+), 154 deletions(-) (limited to 'actionpack/test/template') diff --git a/actionpack/test/template/active_record_helper_test.rb b/actionpack/test/template/active_record_helper_test.rb index 6f7f013de4..8b6a7abd6f 100644 --- a/actionpack/test/template/active_record_helper_test.rb +++ b/actionpack/test/template/active_record_helper_test.rb @@ -1,4 +1,4 @@ -require 'test/unit' +require File.dirname(__FILE__) + '/../abstract_unit' require File.dirname(__FILE__) + '/../../lib/action_view/helpers/date_helper' require File.dirname(__FILE__) + '/../../lib/action_view/helpers/form_helper' require File.dirname(__FILE__) + '/../../lib/action_view/helpers/text_helper' @@ -143,7 +143,7 @@ class ActiveRecordHelperTest < Test::Unit::TestCase end assert_dom_equal( - %(


\n\n\n

), + %(


\n\n\n

), form("post") ) end @@ -155,7 +155,7 @@ class ActiveRecordHelperTest < Test::Unit::TestCase @post.written_on = Time.gm(2004, 6, 15, 16, 30) assert_dom_equal( - %(


\n\n\n — \n : \n

), + %(


\n\n\n — \n : \n

), form("post") ) end diff --git a/actionpack/test/template/date_helper_test.rb b/actionpack/test/template/date_helper_test.rb index 461dfd13c0..c03ba69f3f 100755 --- a/actionpack/test/template/date_helper_test.rb +++ b/actionpack/test/template/date_helper_test.rb @@ -6,12 +6,20 @@ class DateHelperTest < Test::Unit::TestCase include ActionView::Helpers::FormHelper silence_warnings do - Post = Struct.new("Post", :written_on, :updated_at) + Post = Struct.new("Post", :id, :written_on, :updated_at) + Post.class_eval do + def id + 123 + end + def id_before_type_cast + 123 + end + end end def test_distance_in_words from = Time.mktime(2004, 3, 6, 21, 45, 0) - + # 0..1 with include_seconds assert_equal "less than 5 seconds", distance_of_time_in_words(from, from + 0.seconds, true) assert_equal "less than 5 seconds", distance_of_time_in_words(from, from + 4.seconds, true) @@ -67,11 +75,11 @@ class DateHelperTest < Test::Unit::TestCase # > 1051920 assert_equal "over 2 years", distance_of_time_in_words(from, from + 2.years - 30.seconds) assert_equal "over 10 years", distance_of_time_in_words(from, from + 10.years) - + # test to < from assert_equal "about 4 hours", distance_of_time_in_words(from + 4.hours, from) assert_equal "less than 20 seconds", distance_of_time_in_words(from + 19.seconds, from, true) - + # test with integers assert_equal "less than a minute", distance_of_time_in_words(59) assert_equal "about 1 hour", distance_of_time_in_words(60*60) @@ -91,9 +99,8 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_day - expected = %(\n) + expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" assert_equal expected, select_day(Time.mktime(2003, 8, 16)) @@ -101,26 +108,24 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_day_with_blank - expected = %(\n) + expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) 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) + expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" assert_equal expected, select_day(nil, :include_blank => true) end def test_select_month - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -129,7 +134,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_month_with_disabled - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -138,7 +143,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_month_with_field_name_override - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -147,7 +152,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_month_with_blank - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -156,7 +161,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_month_nil_with_blank - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -164,7 +169,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_month_with_numbers - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -173,7 +178,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_month_with_numbers_and_names - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -182,7 +187,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_month_with_numbers_and_names_with_abbv - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -191,7 +196,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_month_with_abbv - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -199,95 +204,117 @@ class DateHelperTest < Test::Unit::TestCase assert_equal expected, select_month(8, :use_short_month => true) end + def test_select_month_with_custom_names + month_names = %w(nil Januar Februar Marts April Maj Juni Juli August September Oktober November December) + + expected = %(\n" + + assert_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_names => month_names) + assert_equal expected, select_month(8, :use_month_names => month_names) + end + + def test_select_month_with_zero_indexed_custom_names + month_names = %w(Januar Februar Marts April Maj Juni Juli August September Oktober November December) + + expected = %(\n" + + assert_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_names => month_names) + assert_equal expected, select_month(8, :use_month_names => month_names) + end + def test_select_year - expected = %(\n) expected << %(\n\n\n) 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) expected << %(\n\n\n) 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) expected << %(\n\n\n) 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) expected << %(\n\n\n) 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) expected << %(\n\n\n) 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) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - + assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18)) end def test_select_hour_with_disabled - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) 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) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) 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) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) 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) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - + assert_equal expected, select_hour(nil, :include_blank => true) end def test_select_minute - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -295,7 +322,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_minute_with_disabled - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -303,7 +330,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_minute_with_field_name_override - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -311,7 +338,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_minute_with_blank - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -319,7 +346,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_minute_with_blank_and_step - expected = %(\n) expected << %(\n\n\n\n\n) expected << "\n" @@ -327,7 +354,7 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_minute_nil_with_blank - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -335,39 +362,39 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_minute_nil_with_blank_and_step - expected = %(\n) expected << %(\n\n\n\n\n) expected << "\n" assert_equal expected, select_minute(nil, { :include_blank => true , :minute_step => 15 }) end - + def test_select_second - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" assert_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18)) end - + def test_select_second_with_disabled - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) 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) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) 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) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" @@ -375,53 +402,81 @@ class DateHelperTest < Test::Unit::TestCase end def test_select_second_nil_with_blank - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" assert_equal expected, select_second(nil, :include_blank => true) end - + def test_select_date - expected = %(\n) expected << %(\n\n\n) expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) + expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - - assert_equal expected, select_date( - Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]" - ) + + 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_order + 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]", :order => [:month, :day, :year]) + end + + def test_select_date_with_incomplete_order + 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]", :order => [:day]) end def test_select_date_with_disabled - expected = %(\n) expected << %(\n\n\n) expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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) (Date.today.year-5).upto(Date.today.year+1) do |y| - if y == Date.today.year + if y == Date.today.year expected << %(\n) else expected << %(\n) @@ -429,22 +484,21 @@ class DateHelperTest < Test::Unit::TestCase end expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) + expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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) 2003.upto(2008) do |y| if y == 2003 expected << %(\n) @@ -454,24 +508,23 @@ class DateHelperTest < Test::Unit::TestCase end expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) + expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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) (Date.today.year-5).upto(Date.today.year+5) do |y| - if y == Date.today.year + if y == Date.today.year expected << %(\n) else expected << %(\n) @@ -479,190 +532,748 @@ class DateHelperTest < Test::Unit::TestCase end expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) + expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - + assert_equal expected, select_date( Time.mktime(Date.today.year, 8, 16), :prefix => "date[first]" ) end + def test_select_date_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_select_date_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_select_date_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_select_date_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_select_date_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_select_datetime + expected = %(\n" + + expected << %(\n" + + expected << %(\n" + + expected << %(\n" + + expected << %(\n" + + assert_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), :start_year => 2003, :end_year => 2005, :prefix => "date[first]") + end + + def test_select_datetime_with_separators + expected = %(\n" + + expected << %(\n" + + expected << %(\n" + + expected << " — " + + expected << %(\n" + + expected << " : " + + expected << %(\n" + + assert_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :datetime_separator => ' — ', :time_separator => ' : ') + end + + def test_select_datetime_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 + + def test_select_time + 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_select_time_with_separator + expected = %(\n" + + expected << " : " + + expected << %(\n" + + assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :time_separator => ' : ') + assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :time_separator => ' : ', :include_seconds => false) + end + def test_select_time_with_seconds - expected = %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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) + expected << " : " + + expected << %(\n" + + assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => true, :time_separator => ' : ') end - def test_date_select_with_zero_value - expected = %(\n} + expected << %{\n\n\n\n\n\n\n\n\n\n\n} expected << "\n" - expected << %(\n} + expected << %{\n\n\n\n\n\n\n\n\n\n\n\n} expected << "\n" - expected << %(\n} + expected << %{\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n} + expected << "\n" - - assert_equal expected, select_date(0, :start_year => 2003, :end_year => 2005, :prefix => "date[first]") + + assert_equal expected, date_select("post", "written_on") 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) + expected = "\n" + expected << "\n" + expected << "\n" + + assert_dom_equal(expected, _erbout) + end + + def test_date_select_with_index + @post = Post.new + @post.written_on = Date.new(2004, 6, 15) + id = 456 + + expected = %{\n" + + expected << %{\n" + + expected << %{\n" + + assert_equal expected, date_select("post", "written_on", :index => id) + end + + def test_date_select_with_auto_index + @post = Post.new + @post.written_on = Date.new(2004, 6, 15) + id = 123 + + expected = %{\n" + + expected << %{\n" + + expected << %{\n" + + assert_equal expected, date_select("post[]", "written_on") + end + + def test_date_select_with_different_order + @post = Post.new + @post.written_on = Date.new(2004, 6, 15) + + expected = %{\n" + + expected << %{\n" + + expected << %{\n" + + assert_equal expected, date_select("post", "written_on", :order => [:day, :month, :year]) + end + + def test_date_select_cant_override_discard_hour + @post = Post.new + @post.written_on = Date.new(2004, 6, 15) + + expected = %{\n" + + expected << %{\n" + + expected << %{\n" + + assert_equal expected, date_select("post", "written_on", :discard_hour => false) + end + + def test_time_select + @post = Post.new + @post.written_on = Time.local(2004, 6, 15, 15, 16, 35) + + expected = %{\n} + expected << %{\n} + expected << %{\n} + + expected << %(\n" + expected << " : " + expected << %(\n" + + assert_equal expected, time_select("post", "written_on") + end + + def test_time_select_with_seconds + @post = Post.new + @post.written_on = Time.local(2004, 6, 15, 15, 16, 35) + + expected = %{\n} + expected << %{\n} + expected << %{\n} + + expected << %(\n" + expected << " : " + expected << %(\n" + expected << " : " + expected << %(\n" + + assert_equal expected, time_select("post", "written_on", :include_seconds => true) + end + + def test_datetime_select + @post = Post.new + @post.updated_at = Time.local(2004, 6, 15, 16, 35) + + expected = %{\n" + + expected << %{\n" + + expected << %{\n" + + expected << " — " + + expected << %{\n" + expected << " : " + expected << %{\n" + + assert_equal expected, datetime_select("post", "updated_at") 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) + expected = "\n" + expected << "\n" + expected << "\n" + expected << " — \n" + expected << " : \n" + + assert_dom_equal(expected, _erbout) end def test_date_select_with_zero_value_and_no_start_year - expected = %(\n) (Date.today.year-5).upto(Date.today.year+1) { |y| expected << %(\n) } expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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) last_year = Time.now.year + 5 2003.upto(last_year) { |y| expected << %(\n) } expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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) (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(\n) } expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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) (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(\n) } expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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) (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(\n) } expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" - expected << %(\n) expected << %(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n) expected << "\n" assert_equal expected, select_datetime(nil, :prefix => "date[first]") end + + def test_datetime_select_with_options_index + @post = Post.new + @post.updated_at = Time.local(2004, 6, 15, 16, 35) + id = 456 + + expected = %{\n" + + expected << %{\n" + + expected << %{\n" + + expected << " — " + + expected << %{\n" + expected << " : " + expected << %{\n" + + assert_equal expected, datetime_select("post", "updated_at", :index => id) + end + + def test_datetime_select_with_auto_index + @post = Post.new + @post.updated_at = Time.local(2004, 6, 15, 16, 35) + id = @post.id + + expected = %{\n" + + expected << %{\n" + + expected << %{\n" + + expected << " — " + + expected << %{\n" + expected << " : " + expected << %{\n" + + assert_equal expected, datetime_select("post[]", "updated_at") + end + + def test_datetime_select_with_seconds + @post = Post.new + @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35) + + expected = %{\n" + expected << %{\n" + expected << %{\n" + + expected << " — " + + expected << %{\n" + expected << " : " + expected << %{\n" + expected << " : " + expected << %{\n" + + assert_equal expected, datetime_select("post", "updated_at", :include_seconds => true) + end + + def test_datetime_select_discard_year + @post = Post.new + @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35) + + expected = %{\n} + expected << %{\n" + expected << %{\n" + + expected << " — " + + expected << %{\n" + expected << " : " + expected << %{\n" + + assert_equal expected, datetime_select("post", "updated_at", :discard_year => true) + end + + def test_datetime_select_discard_month + @post = Post.new + @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35) + + expected = %{\n" + expected << %{\n} + expected << %{\n} + + expected << " — " + + expected << %{\n" + expected << " : " + expected << %{\n" + + assert_equal expected, datetime_select("post", "updated_at", :discard_month => true) + end + + def test_datetime_select_discard_year_and_month + @post = Post.new + @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35) + + expected = %{\n} + expected << %{\n} + expected << %{\n} + + expected << %{\n" + expected << " : " + expected << %{\n" + + assert_equal expected, datetime_select("post", "updated_at", :discard_year => true, :discard_month => true) + end + + def test_datetime_select_invalid_order + @post = Post.new + @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35) + + expected = %{\n" + expected << %{\n" + expected << %{\n" + + expected << " — " + + expected << %{\n" + expected << " : " + expected << %{\n" + + assert_equal expected, datetime_select("post", "updated_at", :order => [:minute, :day, :hour, :month, :year, :second]) + end + + def test_datetime_select_discard_with_order + @post = Post.new + @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35) + + expected = %{\n} + expected << %{\n" + expected << %{\n" + + expected << " — " + + expected << %{\n" + expected << " : " + expected << %{\n" + + assert_equal expected, datetime_select("post", "updated_at", :order => [:day, :month]) + end end -- cgit v1.2.3