]> git.openstreetmap.org Git - rails.git/blob - test/integration/page_locale_test.rb
use a controller method to handle cancan denials
[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 "/login", :params => { :username => user.email, :password => "test" }
17     follow_redirect!
18
19     get "/diary/new"
20     assert_equal [], User.find(user.id).languages
21     assert_select "html[lang=?]", "en"
22
23     get "/diary/new", :headers => { "HTTP_ACCEPT_LANGUAGE" => "fr, en" }
24     assert_equal %w[fr en], User.find(user.id).languages
25     assert_select "html[lang=?]", "fr"
26   end
27
28   def test_override
29     user = create(:user, :languages => ["de"])
30
31     get "/diary"
32     assert_select "html[lang=?]", "en"
33
34     get "/diary", :params => { :locale => "es" }
35     assert_select "html[lang=?]", "es"
36
37     post "/login", :params => { :username => user.email, :password => "test" }
38     follow_redirect!
39
40     get "/diary"
41     assert_select "html[lang=?]", "de"
42
43     get "/diary", :params => { :locale => "fr" }
44     assert_select "html[lang=?]", "fr"
45   end
46 end