Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
[akkoma] / test / web / activity_pub / mrf / mention_policy_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.ActivityPub.MRF.MentionPolicyTest do
6 use Pleroma.DataCase
7
8 alias Pleroma.Web.ActivityPub.MRF.MentionPolicy
9
10 test "pass filter if allow list is empty" do
11 Pleroma.Config.delete([:mrf_mention])
12
13 message = %{
14 "type" => "Create",
15 "to" => ["https://example.com/ok"],
16 "cc" => ["https://example.com/blocked"]
17 }
18
19 assert MentionPolicy.filter(message) == {:ok, message}
20 end
21
22 describe "allow" do
23 test "empty" do
24 Pleroma.Config.put([:mrf_mention], %{actors: ["https://example.com/blocked"]})
25
26 message = %{
27 "type" => "Create"
28 }
29
30 assert MentionPolicy.filter(message) == {:ok, message}
31 end
32
33 test "to" do
34 Pleroma.Config.put([:mrf_mention], %{actors: ["https://example.com/blocked"]})
35
36 message = %{
37 "type" => "Create",
38 "to" => ["https://example.com/ok"]
39 }
40
41 assert MentionPolicy.filter(message) == {:ok, message}
42 end
43
44 test "cc" do
45 Pleroma.Config.put([:mrf_mention], %{actors: ["https://example.com/blocked"]})
46
47 message = %{
48 "type" => "Create",
49 "cc" => ["https://example.com/ok"]
50 }
51
52 assert MentionPolicy.filter(message) == {:ok, message}
53 end
54
55 test "both" do
56 Pleroma.Config.put([:mrf_mention], %{actors: ["https://example.com/blocked"]})
57
58 message = %{
59 "type" => "Create",
60 "to" => ["https://example.com/ok"],
61 "cc" => ["https://example.com/ok2"]
62 }
63
64 assert MentionPolicy.filter(message) == {:ok, message}
65 end
66 end
67
68 describe "deny" do
69 test "to" do
70 Pleroma.Config.put([:mrf_mention], %{actors: ["https://example.com/blocked"]})
71
72 message = %{
73 "type" => "Create",
74 "to" => ["https://example.com/blocked"]
75 }
76
77 assert MentionPolicy.filter(message) == {:reject, nil}
78 end
79
80 test "cc" do
81 Pleroma.Config.put([:mrf_mention], %{actors: ["https://example.com/blocked"]})
82
83 message = %{
84 "type" => "Create",
85 "to" => ["https://example.com/ok"],
86 "cc" => ["https://example.com/blocked"]
87 }
88
89 assert MentionPolicy.filter(message) == {:reject, nil}
90 end
91 end
92 end