]> git.openstreetmap.org Git - rails.git/blob - test/integration/page_locale_test.rb
b42865ae48c6f8c7867cee7c7de55a355ce6a617
[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   end
7
8   def teardown
9     I18n.locale = "en"
10   end
11
12   def test_defaulting
13     user = create(:user, :languages => [])
14
15     get "/login"
16     follow_redirect!
17     post "/login", :params => { :username => user.email, :password => "test" }
18     follow_redirect!
19
20     get "/diary/new"
21     assert_empty User.find(user.id).languages
22     assert_select "html[lang=?]", "en"
23
24     get "/diary/new", :headers => { "HTTP_ACCEPT_LANGUAGE" => "fr, en" }
25     assert_equal %w[fr en], User.find(user.id).languages
26     assert_select "html[lang=?]", "fr"
27   end
28
29   def test_override
30     user = create(:user, :languages => ["de"])
31
32     get "/diary"
33     assert_select "html[lang=?]", "en"
34
35     get "/diary", :params => { :locale => "es" }
36     assert_select "html[lang=?]", "es"
37
38     get "/login"
39     follow_redirect!
40     post "/login", :params => { :username => user.email, :password => "test" }
41     follow_redirect!
42
43     get "/diary"
44     assert_select "html[lang=?]", "de"
45
46     get "/diary", :params => { :locale => "fr" }
47     assert_select "html[lang=?]", "fr"
48   end
49 end