]> git.openstreetmap.org Git - rails.git/blob - test/integration/page_locale_test.rb
Avoid accidental locale changes in tests
[rails.git] / test / integration / page_locale_test.rb
1 require "test_helper"
2
3 class PageLocaleTest < ActionDispatch::IntegrationTest
4   def test_defaulting
5     I18n.with_locale "en" do
6       user = create(:user, :languages => [])
7
8       get "/login"
9       follow_redirect!
10       post "/login", :params => { :username => user.email, :password => "test" }
11       follow_redirect!
12
13       get "/diary/new"
14       assert_empty User.find(user.id).languages
15       assert_select "html[lang=?]", "en"
16
17       get "/diary/new", :headers => { "HTTP_ACCEPT_LANGUAGE" => "fr, en" }
18       assert_equal %w[fr en], User.find(user.id).languages
19       assert_select "html[lang=?]", "fr"
20     end
21   end
22
23   def test_override
24     I18n.with_locale "en" do
25       user = create(:user, :languages => ["de"])
26
27       get "/diary"
28       assert_select "html[lang=?]", "en"
29
30       get "/diary", :params => { :locale => "es" }
31       assert_select "html[lang=?]", "es"
32
33       get "/login"
34       follow_redirect!
35       post "/login", :params => { :username => user.email, :password => "test" }
36       follow_redirect!
37
38       get "/diary"
39       assert_select "html[lang=?]", "de"
40
41       get "/diary", :params => { :locale => "fr" }
42       assert_select "html[lang=?]", "fr"
43     end
44   end
45 end