1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.Plugs.EnsurePublicOrAuthenticatedPlugTest do
6 use Pleroma.Web.ConnCase, async: true
9 alias Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug
12 test "it halts if not public and no user is assigned", %{conn: conn} do
17 |> EnsurePublicOrAuthenticatedPlug.call(%{})
19 assert conn.status == 403
20 assert conn.halted == true
23 test "it continues if public", %{conn: conn} do
28 |> EnsurePublicOrAuthenticatedPlug.call(%{})
30 assert ret_conn == conn
33 test "it continues if a user is assigned, even if not public", %{conn: conn} do
38 |> assign(:user, %User{})
42 |> EnsurePublicOrAuthenticatedPlug.call(%{})
44 assert ret_conn == conn
47 defp set_public_to(value) do
48 orig = Config.get!([:instance, :public])
49 Config.put([:instance, :public], value)
52 Config.put([:instance, :public], orig)