diff options
-rw-r--r-- | app/controllers/application_controller.rb | 2 | ||||
-rw-r--r-- | test/integration/locale_path_test.rb | 17 |
2 files changed, 13 insertions, 6 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 58e6f83..a4cbfb5 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -58,7 +58,7 @@ class ApplicationController < ActionController::Base end def default_url_options(options={}) - if request_may_have_locale?(request) + if request_may_have_locale?(request) && I18n.locale != I18n.default_locale { :locale => I18n.locale } else { :locale => nil } diff --git a/test/integration/locale_path_test.rb b/test/integration/locale_path_test.rb index 2c43ab2..738e7f5 100644 --- a/test/integration/locale_path_test.rb +++ b/test/integration/locale_path_test.rb @@ -24,28 +24,35 @@ class LocalePathTest < ActionDispatch::IntegrationTest test "redirect if accept-language is not default locale" do get_via_redirect '/', {}, 'HTTP_ACCEPT_LANGUAGE' => 'de' assert_equal '/de', path - assert_equal({:locale => :de}, @controller.default_url_options) + assert_equal({:locale => :de}, default_url_options) end test "no locale prefix" do get_via_redirect '/', {}, 'HTTP_ACCEPT_LANGUAGE' => 'en' assert_equal '/', path - assert_equal({:locale => nil}, @controller.default_url_options) + assert_equal({:locale => nil}, default_url_options) get_via_redirect '/', {}, 'HTTP_ACCEPT_LANGUAGE' => 'pt' assert_equal '/', path - assert_equal({:locale => nil}, @controller.default_url_options) + assert_equal({:locale => nil}, default_url_options) end test "no redirect if locale explicit" do get_via_redirect '/de', {}, 'HTTP_ACCEPT_LANGUAGE' => 'en' assert_equal '/de', path - assert_equal({:locale => :de}, @controller.default_url_options) + assert_equal({:locale => :de}, default_url_options) end test "strip prefix from url options if locale is default" do get_via_redirect '/en', {}, 'HTTP_ACCEPT_LANGUAGE' => 'en' assert_equal '/en', path - assert_equal({:locale => nil}, @controller.default_url_options) + assert_equal({:locale => nil}, default_url_options) end + + protected + + def default_url_options + @controller.send(:default_url_options) + end + end
\ No newline at end of file |