45 lines
1.2 KiB
Ruby
45 lines
1.2 KiB
Ruby
require "test_helper"
|
|
|
|
class PageLocaleTest < ActionDispatch::IntegrationTest
|
|
def test_defaulting
|
|
I18n.with_locale "en" do
|
|
user = create(:user, :languages => [])
|
|
|
|
get "/login"
|
|
follow_redirect!
|
|
post "/login", :params => { :username => user.email, :password => "test" }
|
|
follow_redirect!
|
|
|
|
get "/diary/new"
|
|
assert_empty User.find(user.id).languages
|
|
assert_select "html[lang=?]", "en"
|
|
|
|
get "/diary/new", :headers => { "HTTP_ACCEPT_LANGUAGE" => "fr, en" }
|
|
assert_equal %w[fr en], User.find(user.id).languages
|
|
assert_select "html[lang=?]", "fr"
|
|
end
|
|
end
|
|
|
|
def test_override
|
|
I18n.with_locale "en" do
|
|
user = create(:user, :languages => ["de"])
|
|
|
|
get "/diary"
|
|
assert_select "html[lang=?]", "en"
|
|
|
|
get "/diary", :params => { :locale => "es" }
|
|
assert_select "html[lang=?]", "es"
|
|
|
|
get "/login"
|
|
follow_redirect!
|
|
post "/login", :params => { :username => user.email, :password => "test" }
|
|
follow_redirect!
|
|
|
|
get "/diary"
|
|
assert_select "html[lang=?]", "de"
|
|
|
|
get "/diary", :params => { :locale => "fr" }
|
|
assert_select "html[lang=?]", "fr"
|
|
end
|
|
end
|
|
end
|