summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/application_controller.rb2
-rw-r--r--test/integration/locale_path_test.rb17
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