aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2013-12-12 08:28:30 -0200
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2013-12-17 09:05:41 -0200
commitc445c6d1b99c987b7f98943db46f705a3acc400f (patch)
tree0c8781fa9336ba1f06c39696197e83f852c357ae /railties
parentaaa5463cc0d81e400ddfb4fdacc0caee319fd587 (diff)
downloadrails-c445c6d1b99c987b7f98943db46f705a3acc400f.tar.gz
rails-c445c6d1b99c987b7f98943db46f705a3acc400f.tar.bz2
rails-c445c6d1b99c987b7f98943db46f705a3acc400f.zip
Default I18n.enforce_available_locales to true
We will default this option to true from now on to ensure users properly handle their list of available locales whenever necessary. This option was added as a security measure and thus Rails will follow it defaulting to secure option. Also improve the handling of I18n config options in its railtie, taking the new enforce_available_locales option into account, by setting it as the last one in the process. This ensures no other configuration will trigger a deprecation warning due to that setting.
Diffstat (limited to 'railties')
-rw-r--r--railties/test/application/initializers/i18n_test.rb42
1 files changed, 38 insertions, 4 deletions
diff --git a/railties/test/application/initializers/i18n_test.rb b/railties/test/application/initializers/i18n_test.rb
index 2a64cd8ba7..bc34897cdf 100644
--- a/railties/test/application/initializers/i18n_test.rb
+++ b/railties/test/application/initializers/i18n_test.rb
@@ -184,14 +184,48 @@ en:
assert_fallbacks ca: [:ca, :"es-ES", :es, :'en-US', :en]
end
- test "config.i18n.enforce_available_locales is set before config.i18n.default_locale is" do
+ test "config.i18n.enforce_available_locales is set to true by default and avoids I18n warnings" do
add_to_config <<-RUBY
config.i18n.default_locale = :it
- config.i18n.enforce_available_locales = true
RUBY
- assert_raises(I18n::InvalidLocale) do
- load_app
+ output = capture(:stderr) { load_app }
+ assert_no_match %r{deprecated.*enforce_available_locales}, output
+ assert_equal true, I18n.enforce_available_locales
+
+ assert_raise I18n::InvalidLocale do
+ I18n.locale = :es
+ end
+ end
+
+ test "disable config.i18n.enforce_available_locales" do
+ add_to_config <<-RUBY
+ config.i18n.enforce_available_locales = false
+ config.i18n.default_locale = :fr
+ RUBY
+
+ output = capture(:stderr) { load_app }
+ assert_no_match %r{deprecated.*enforce_available_locales}, output
+ assert_equal false, I18n.enforce_available_locales
+
+ assert_nothing_raised do
+ I18n.locale = :es
+ end
+ end
+
+ test "default config.i18n.enforce_available_locales does not override I18n.enforce_available_locales" do
+ I18n.enforce_available_locales = false
+
+ add_to_config <<-RUBY
+ config.i18n.default_locale = :fr
+ RUBY
+
+ output = capture(:stderr) { load_app }
+ assert_no_match %r{deprecated.*enforce_available_locales}, output
+ assert_equal false, I18n.enforce_available_locales
+
+ assert_nothing_raised do
+ I18n.locale = :es
end
end
end