]> git.openstreetmap.org Git - rails.git/blob - test/integration/page_locale_test.rb
Merge pull request #6394 from openstreetmap/dependabot/github_actions/ruby/setup...
[rails.git] / test / integration / page_locale_test.rb
1 # frozen_string_literal: true
2
3 require "test_helper"
4
5 class PageLocaleTest < ActionDispatch::IntegrationTest
6   def test_defaulting
7     I18n.with_locale "en" do
8       user = create(:user, :languages => [])
9
10       get "/login"
11       follow_redirect!
12       post "/login", :params => { :username => user.email, :password => "test" }
13       follow_redirect!
14
15       get "/diary/new"
16       assert_empty User.find(user.id).languages
17       assert_select "html[lang=?]", "en"
18
19       get "/diary/new", :headers => { "Accept-Language" => "fr, en" }
20       assert_equal %w[fr en], User.find(user.id).languages
21       assert_select "html[lang=?]", "fr"
22     end
23   end
24
25   def test_override
26     I18n.with_locale "en" do
27       user = create(:user, :languages => ["de"])
28
29       get "/diary"
30       assert_select "html[lang=?]", "en"
31
32       get "/diary", :params => { :locale => "es" }
33       assert_select "html[lang=?]", "es"
34
35       get "/login"
36       follow_redirect!
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
47 end