Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Raise exception when date.order includes invalid elements

  • Loading branch information...
commit 88ec722a0ff0752e4170d41d0c956a387cd9b4db 1 parent 4e6050b
@indrekj indrekj authored
View
10 actionpack/lib/action_view/helpers/date_helper.rb
@@ -836,7 +836,15 @@ def date_order
end
def translated_date_order
- I18n.translate(:'date.order', :locale => @options[:locale]) || []
+ date_order = I18n.translate(:'date.order', :locale => @options[:locale]) || []
+
+ forbidden_elements = date_order - [:year, :month, :day]
+ if forbidden_elements.any?
+ raise StandardError,
+ "#{@options[:locale]}.date.order only accepts :year, :month and :day"
+ end
+
+ date_order
end
# Build full select tag from date type and options.
View
8 actionpack/test/template/date_helper_i18n_test.rb
@@ -118,4 +118,12 @@ def test_date_or_time_select_given_no_order_options_translates_order
I18n.expects(:translate).with(:'date.order', :locale => 'en').returns [:year, :month, :day]
datetime_select('post', 'updated_at', :locale => 'en')
end
+
+ def test_date_or_time_select_given_invalid_order
+ I18n.expects(:translate).with(:'date.order', :locale => 'en').returns [:invalid, :month, :day]
+
+ assert_raise StandardError do
+ datetime_select('post', 'updated_at', :locale => 'en')
+ end
+ end
end
Please sign in to comment.
Something went wrong with that request. Please try again.