From d2d2fc0834503bf377d9d7adb136b16856ae49d5 Mon Sep 17 00:00:00 2001 From: Jey Balachandran Date: Sun, 18 Mar 2012 20:44:46 -0700 Subject: Fixes issue #5222: DateTimeSelector builds invalid dates on leap day when discarding both day and month. --- .../test/template/active_model_helper_test.rb | 4 ++-- actionpack/test/template/date_helper_test.rb | 24 +++++++++++++++++----- 2 files changed, 21 insertions(+), 7 deletions(-) (limited to 'actionpack/test/template') diff --git a/actionpack/test/template/active_model_helper_test.rb b/actionpack/test/template/active_model_helper_test.rb index 18468ee91a..24511df444 100644 --- a/actionpack/test/template/active_model_helper_test.rb +++ b/actionpack/test/template/active_model_helper_test.rb @@ -43,14 +43,14 @@ class ActiveModelHelperTest < ActionView::TestCase def test_date_select_with_errors assert_dom_equal( - %(
\n\n\n
), + %(
\n\n\n
), date_select("post", "updated_at", :discard_month => true, :discard_day => true, :start_year => 2004, :end_year => 2005) ) end def test_datetime_select_with_errors assert_dom_equal( - %(
\n\n\n\n : \n
), + %(
\n\n\n\n : \n
), datetime_select("post", "updated_at", :discard_year => true, :discard_month => true, :discard_day => true, :minute_step => 60) ) end diff --git a/actionpack/test/template/date_helper_test.rb b/actionpack/test/template/date_helper_test.rb index 1d934b153f..f622097b57 100644 --- a/actionpack/test/template/date_helper_test.rb +++ b/actionpack/test/template/date_helper_test.rb @@ -711,7 +711,7 @@ class DateHelperTest < ActionView::TestCase # Since the order is incomplete nothing will be shown expected = %(\n) expected << %(\n) - expected << %(\n) + expected << %(\n) assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :order => [:day]) end @@ -943,7 +943,7 @@ class DateHelperTest < ActionView::TestCase expected << "\n" expected << %(\n) - expected << %(\n) + expected << %(\n) assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), { :date_separator => " / ", :discard_month => true, :discard_day => true, :start_year => 2003, :end_year => 2005, :prefix => "date[first]"}) end @@ -1396,6 +1396,20 @@ class DateHelperTest < ActionView::TestCase assert_dom_equal expected, date_select("post", "written_on", :order => [ :month, :year ]) end + def test_date_select_without_day_and_month + @post = Post.new + @post.written_on = Date.new(2004, 2, 29) + + expected = "\n" + expected << "\n" + + expected << %{\n" + + assert_dom_equal expected, date_select("post", "written_on", :order => [ :year ]) + end + def test_date_select_without_day_with_separator @post = Post.new @post.written_on = Date.new(2004, 6, 15) @@ -2427,7 +2441,7 @@ class DateHelperTest < ActionView::TestCase 1999.upto(2009) { |i| expected << %(\n) } expected << "\n" expected << %{\n} - expected << %{\n} + expected << %{\n} expected << " — " @@ -2448,7 +2462,7 @@ class DateHelperTest < ActionView::TestCase expected = %{\n} expected << %{\n} - expected << %{\n} + expected << %{\n} expected << %{\n} expected << %{\n} - expected << %{\n} + expected << %{\n} expected << %{