1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.Web.Plugs.EnsurePublicOrAuthenticatedPlugTest do
6 use Pleroma.Web.ConnCase
9 alias Pleroma.Web.Plugs.EnsurePublicOrAuthenticatedPlug
11 setup do: clear_config([:instance, :public])
13 test "it halts if not public and no user is assigned", %{conn: conn} do
14 clear_config([:instance, :public], false)
18 |> EnsurePublicOrAuthenticatedPlug.call(%{})
20 assert conn.status == 403
21 assert conn.halted == true
24 test "it continues if public", %{conn: conn} do
25 clear_config([:instance, :public], true)
29 |> EnsurePublicOrAuthenticatedPlug.call(%{})
31 refute ret_conn.halted
34 test "it continues if a user is assigned, even if not public", %{conn: conn} do
35 clear_config([:instance, :public], false)
39 |> assign(:user, %User{})
43 |> EnsurePublicOrAuthenticatedPlug.call(%{})
45 refute ret_conn.halted