summaryrefslogtreecommitdiff
path: root/test/plugs/set_locale_plug_test.exs
diff options
context:
space:
mode:
authorRoman Chvanikov <chvanikoff@pm.me>2019-07-12 18:08:27 +0300
committerRoman Chvanikov <chvanikoff@pm.me>2019-07-12 18:08:27 +0300
commiteae991b06a22bf7fc3eef7a0d5b409c931c1f6cb (patch)
tree77cd19ea54b8efa69e45b2d37876e7d5084cf38e /test/plugs/set_locale_plug_test.exs
parent371d39e160efa51f2fe608e1788f6b11b89d9839 (diff)
parentdb75288b71e7531f8e5033f56fc0b9a7d1d8efb3 (diff)
downloadpleroma-eae991b06a22bf7fc3eef7a0d5b409c931c1f6cb.tar.gz
pleroma-eae991b06a22bf7fc3eef7a0d5b409c931c1f6cb.zip
merge develop
Diffstat (limited to 'test/plugs/set_locale_plug_test.exs')
-rw-r--r--test/plugs/set_locale_plug_test.exs46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/plugs/set_locale_plug_test.exs b/test/plugs/set_locale_plug_test.exs
new file mode 100644
index 000000000..b6c4c1cea
--- /dev/null
+++ b/test/plugs/set_locale_plug_test.exs
@@ -0,0 +1,46 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Plugs.SetLocalePlugTest do
+ use ExUnit.Case, async: true
+ use Plug.Test
+
+ alias Pleroma.Plugs.SetLocalePlug
+ alias Plug.Conn
+
+ test "default locale is `en`" do
+ conn =
+ :get
+ |> conn("/cofe")
+ |> SetLocalePlug.call([])
+
+ assert "en" == Gettext.get_locale()
+ assert %{locale: "en"} == conn.assigns
+ end
+
+ test "use supported locale from `accept-language`" do
+ conn =
+ :get
+ |> conn("/cofe")
+ |> Conn.put_req_header(
+ "accept-language",
+ "ru, fr-CH, fr;q=0.9, en;q=0.8, *;q=0.5"
+ )
+ |> SetLocalePlug.call([])
+
+ assert "ru" == Gettext.get_locale()
+ assert %{locale: "ru"} == conn.assigns
+ end
+
+ test "use default locale if locale from `accept-language` is not supported" do
+ conn =
+ :get
+ |> conn("/cofe")
+ |> Conn.put_req_header("accept-language", "tlh")
+ |> SetLocalePlug.call([])
+
+ assert "en" == Gettext.get_locale()
+ assert %{locale: "en"} == conn.assigns
+ end
+end