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.ActivityPub.MRF.MentionPolicyTest do
8 alias Pleroma.Web.ActivityPub.MRF.MentionPolicy
10 setup do: clear_config(:mrf_mention)
12 test "pass filter if allow list is empty" do
13 Pleroma.Config.delete([:mrf_mention])
17 "to" => ["https://example.com/ok"],
18 "cc" => ["https://example.com/blocked"]
23 "to" => ["https://example.com/ok"],
24 "cc" => ["https://example.com/blocked"]
27 assert MentionPolicy.filter(message) == {:ok, message}
28 assert MentionPolicy.filter(update_message) == {:ok, update_message}
33 clear_config([:mrf_mention], %{actors: ["https://example.com/blocked"]})
43 assert MentionPolicy.filter(message) == {:ok, message}
44 assert MentionPolicy.filter(update_message) == {:ok, update_message}
48 clear_config([:mrf_mention], %{actors: ["https://example.com/blocked"]})
52 "to" => ["https://example.com/ok"]
57 "to" => ["https://example.com/ok"]
60 assert MentionPolicy.filter(message) == {:ok, message}
61 assert MentionPolicy.filter(update_message) == {:ok, update_message}
65 clear_config([:mrf_mention], %{actors: ["https://example.com/blocked"]})
69 "cc" => ["https://example.com/ok"]
74 "cc" => ["https://example.com/ok"]
77 assert MentionPolicy.filter(message) == {:ok, message}
78 assert MentionPolicy.filter(update_message) == {:ok, update_message}
82 clear_config([:mrf_mention], %{actors: ["https://example.com/blocked"]})
86 "to" => ["https://example.com/ok"],
87 "cc" => ["https://example.com/ok2"]
92 "to" => ["https://example.com/ok"],
93 "cc" => ["https://example.com/ok2"]
96 assert MentionPolicy.filter(message) == {:ok, message}
97 assert MentionPolicy.filter(update_message) == {:ok, update_message}
103 clear_config([:mrf_mention], %{actors: ["https://example.com/blocked"]})
107 "to" => ["https://example.com/blocked"]
112 "to" => ["https://example.com/blocked"]
115 assert MentionPolicy.filter(message) ==
116 {:reject, "[MentionPolicy] Rejected for mention of https://example.com/blocked"}
118 assert MentionPolicy.filter(update_message) ==
119 {:reject, "[MentionPolicy] Rejected for mention of https://example.com/blocked"}
123 clear_config([:mrf_mention], %{actors: ["https://example.com/blocked"]})
127 "to" => ["https://example.com/ok"],
128 "cc" => ["https://example.com/blocked"]
133 "to" => ["https://example.com/ok"],
134 "cc" => ["https://example.com/blocked"]
137 assert MentionPolicy.filter(message) ==
138 {:reject, "[MentionPolicy] Rejected for mention of https://example.com/blocked"}
140 assert MentionPolicy.filter(update_message) ==
141 {:reject, "[MentionPolicy] Rejected for mention of https://example.com/blocked"}