summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTusooa Zhu <tusooa@kazv.moe>2022-03-03 02:03:44 -0500
committerTusooa Zhu <tusooa@kazv.moe>2022-03-03 02:03:44 -0500
commit7ea330b4fe1c93eb7caba2631e1adf133708fa20 (patch)
tree51833796f47e8e8372f072dd5326b6f7ea4b8eab /test
parentd3f3f30c6a7fae04af27d256d0c2fd90ce03adf0 (diff)
downloadpleroma-7ea330b4fe1c93eb7caba2631e1adf133708fa20.tar.gz
pleroma-7ea330b4fe1c93eb7caba2631e1adf133708fa20.zip
Support multiple locales formally
elixir gettext current does not fully support fallback to another language [0]. But it might in the future. We adapt it so that all languages in Accept-Language headers are received by Pleroma.Web.Gettext. User.languages is now a comma-separated list. [0]: https://github.com/elixir-gettext/gettext/issues/303
Diffstat (limited to 'test')
-rw-r--r--test/pleroma/web/plugs/set_locale_plug_test.exs30
1 files changed, 22 insertions, 8 deletions
diff --git a/test/pleroma/web/plugs/set_locale_plug_test.exs b/test/pleroma/web/plugs/set_locale_plug_test.exs
index f5d3ab995..b0e7afffd 100644
--- a/test/pleroma/web/plugs/set_locale_plug_test.exs
+++ b/test/pleroma/web/plugs/set_locale_plug_test.exs
@@ -16,7 +16,7 @@ defmodule Pleroma.Web.Plugs.SetLocalePlugTest do
|> SetLocalePlug.call([])
assert "en" == Gettext.get_locale()
- assert %{locale: "en"} == conn.assigns
+ assert %{locale: "en"} = conn.assigns
end
test "use supported locale from `accept-language`" do
@@ -30,7 +30,7 @@ defmodule Pleroma.Web.Plugs.SetLocalePlugTest do
|> SetLocalePlug.call([])
assert "ru" == Gettext.get_locale()
- assert %{locale: "ru"} == conn.assigns
+ assert %{locale: "ru"} = conn.assigns
end
test "fallback to the general language if a variant is not supported" do
@@ -44,7 +44,7 @@ defmodule Pleroma.Web.Plugs.SetLocalePlugTest do
|> SetLocalePlug.call([])
assert "ru" == Gettext.get_locale()
- assert %{locale: "ru"} == conn.assigns
+ assert %{locale: "ru"} = conn.assigns
end
test "use supported locale with specifiers from `accept-language`" do
@@ -58,7 +58,21 @@ defmodule Pleroma.Web.Plugs.SetLocalePlugTest do
|> SetLocalePlug.call([])
assert "zh_Hans" == Gettext.get_locale()
- assert %{locale: "zh_Hans"} == conn.assigns
+ assert %{locale: "zh_Hans"} = conn.assigns
+ end
+
+ test "it assigns all supported locales" do
+ conn =
+ :get
+ |> conn("/cofe")
+ |> Conn.put_req_header(
+ "accept-language",
+ "ru, fr-CH, fr;q=0.9, en;q=0.8, x-unsupported;q=0.8, *;q=0.5"
+ )
+ |> SetLocalePlug.call([])
+
+ assert "ru" == Gettext.get_locale()
+ assert %{locale: "ru", locales: ["ru", "fr", "en"]} = conn.assigns
end
test "fallback to some variant of the language if the unqualified language is not supported" do
@@ -87,7 +101,7 @@ defmodule Pleroma.Web.Plugs.SetLocalePlugTest do
|> SetLocalePlug.call([])
assert "zh_Hans" == Gettext.get_locale()
- assert %{locale: "zh_Hans"} == conn.assigns
+ assert %{locale: "zh_Hans"} = conn.assigns
end
test "fallback to supported locale from `accept-language` if locale in cookie not supported" do
@@ -102,7 +116,7 @@ defmodule Pleroma.Web.Plugs.SetLocalePlugTest do
|> SetLocalePlug.call([])
assert "ru" == Gettext.get_locale()
- assert %{locale: "ru"} == conn.assigns
+ assert %{locale: "ru"} = conn.assigns
end
test "fallback to default if nothing is supported" do
@@ -117,7 +131,7 @@ defmodule Pleroma.Web.Plugs.SetLocalePlugTest do
|> SetLocalePlug.call([])
assert "en" == Gettext.get_locale()
- assert %{locale: "en"} == conn.assigns
+ assert %{locale: "en"} = conn.assigns
end
test "use default locale if locale from `accept-language` is not supported" do
@@ -128,6 +142,6 @@ defmodule Pleroma.Web.Plugs.SetLocalePlugTest do
|> SetLocalePlug.call([])
assert "en" == Gettext.get_locale()
- assert %{locale: "en"} == conn.assigns
+ assert %{locale: "en"} = conn.assigns
end
end