Merge branch 'fix/backup-url-on-s3' into 'develop'
[akkoma] / test / pleroma / web / plugs / ensure_user_token_assigns_plug_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.Plugs.EnsureUserTokenAssignsPlugTest do
6 use Pleroma.Web.ConnCase, async: true
7
8 import Pleroma.Factory
9
10 alias Pleroma.Web.Plugs.EnsureUserTokenAssignsPlug
11
12 test "with :user assign set to a User record " <>
13 "and :token assign set to a Token belonging to this user, " <>
14 "it does nothing" do
15 %{conn: conn} = oauth_access(["read"])
16
17 ret_conn = EnsureUserTokenAssignsPlug.call(conn, %{})
18
19 assert conn == ret_conn
20 end
21
22 test "with :user assign set to a User record " <>
23 "but :token assign not set or not a Token, " <>
24 "it assigns :token to `nil`",
25 %{conn: conn} do
26 user = insert(:user)
27 conn = assign(conn, :user, user)
28
29 ret_conn = EnsureUserTokenAssignsPlug.call(conn, %{})
30
31 assert %{token: nil} = ret_conn.assigns
32
33 ret_conn2 =
34 conn
35 |> assign(:token, 1)
36 |> EnsureUserTokenAssignsPlug.call(%{})
37
38 assert %{token: nil} = ret_conn2.assigns
39 end
40
41 # Abnormal (unexpected) scenario
42 test "with :user assign set to a User record " <>
43 "but :token assign set to a Token NOT belonging to :user, " <>
44 "it drops auth info" do
45 %{conn: conn} = oauth_access(["read"])
46 other_user = insert(:user)
47
48 conn = assign(conn, :user, other_user)
49
50 ret_conn = EnsureUserTokenAssignsPlug.call(conn, %{})
51
52 assert %{user: nil, token: nil} = ret_conn.assigns
53 end
54
55 test "if :user assign is not set to a User record, it sets :user and :token to nil", %{
56 conn: conn
57 } do
58 ret_conn = EnsureUserTokenAssignsPlug.call(conn, %{})
59
60 assert %{user: nil, token: nil} = ret_conn.assigns
61
62 ret_conn2 =
63 conn
64 |> assign(:user, 1)
65 |> EnsureUserTokenAssignsPlug.call(%{})
66
67 assert %{user: nil, token: nil} = ret_conn2.assigns
68 end
69 end