]> git.openstreetmap.org Git - rails.git/blobdiff - test/integration/page_locale_test.rb
Add some tests for the locale library
[rails.git] / test / integration / page_locale_test.rb
diff --git a/test/integration/page_locale_test.rb b/test/integration/page_locale_test.rb
new file mode 100644 (file)
index 0000000..43810db
--- /dev/null
@@ -0,0 +1,45 @@
+require "test_helper"
+
+class PageLocaleTest < ActionDispatch::IntegrationTest
+  fixtures :users
+
+  def setup
+    I18n.locale = "en"
+  end
+
+  def teardown
+    I18n.locale = "en"
+  end
+
+  def test_defaulting
+    user = users(:second_public_user)
+
+    post_via_redirect "/login", :username => user.email, :password => "test"
+
+    get "/diary/new", {}
+    assert_equal [], User.find(user.id).languages
+    assert_select "html[lang=?]", "en"
+
+    get "/diary/new", {}, { "HTTP_ACCEPT_LANGUAGE" => "fr, en" }
+    assert_equal %w(fr en), User.find(user.id).languages
+    assert_select "html[lang=?]", "fr"
+  end
+
+  def test_override
+    user = users(:german_user)
+
+    get "/diary"
+    assert_select "html[lang=?]", "en"
+
+    get "/diary", :locale => "es"
+    assert_select "html[lang=?]", "es"
+
+    post_via_redirect "/login", :username => user.email, :password => "test"
+
+    get "/diary"
+    assert_select "html[lang=?]", "de"
+
+    get "/diary", :locale => "fr"
+    assert_select "html[lang=?]", "fr"
+  end
+end