Merge remote-tracking branch 'openstreetmap/pull/1553'
[rails.git] / test / integration / page_locale_test.rb
1 require "test_helper"
2
3 class PageLocaleTest < ActionDispatch::IntegrationTest
4   def setup
5     I18n.locale = "en"
6     stub_hostip_requests
7   end
8
9   def teardown
10     I18n.locale = "en"
11   end
12
13   def test_defaulting
14     user = create(:user, :languages => [])
15
16     post_via_redirect "/login", :username => user.email, :password => "test"
17
18     get "/diary/new", {}
19     assert_equal [], User.find(user.id).languages
20     assert_select "html[lang=?]", "en"
21
22     get "/diary/new", {}, { "HTTP_ACCEPT_LANGUAGE" => "fr, en" }
23     assert_equal %w[fr en], User.find(user.id).languages
24     assert_select "html[lang=?]", "fr"
25   end
26
27   def test_override
28     user = create(:user, :languages => ["de"])
29
30     get "/diary"
31     assert_select "html[lang=?]", "en"
32
33     get "/diary", :locale => "es"
34     assert_select "html[lang=?]", "es"
35
36     post_via_redirect "/login", :username => user.email, :password => "test"
37
38     get "/diary"
39     assert_select "html[lang=?]", "de"
40
41     get "/diary", :locale => "fr"
42     assert_select "html[lang=?]", "fr"
43   end
44 end