|
|
@@ -33,7 +33,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "has a matching host" do |
|
|
|
clear_config([:mrf_simple, :media_removal], ["remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :media_removal], [{"remote.instance", "Some reason"}]) |
|
|
|
media_message = build_media_message() |
|
|
|
local_message = build_local_message() |
|
|
|
|
|
|
@@ -46,7 +46,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "match with wildcard domain" do |
|
|
|
clear_config([:mrf_simple, :media_removal], ["*.remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :media_removal], [{"*.remote.instance", "Whatever reason"}]) |
|
|
|
media_message = build_media_message() |
|
|
|
local_message = build_local_message() |
|
|
|
|
|
|
@@ -70,7 +70,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "has a matching host" do |
|
|
|
clear_config([:mrf_simple, :media_nsfw], ["remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :media_nsfw], [{"remote.instance", "Whetever"}]) |
|
|
|
media_message = build_media_message() |
|
|
|
local_message = build_local_message() |
|
|
|
|
|
|
@@ -81,7 +81,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "match with wildcard domain" do |
|
|
|
clear_config([:mrf_simple, :media_nsfw], ["*.remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :media_nsfw], [{"*.remote.instance", "yeah yeah"}]) |
|
|
|
media_message = build_media_message() |
|
|
|
local_message = build_local_message() |
|
|
|
|
|
|
@@ -115,7 +115,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "has a matching host" do |
|
|
|
clear_config([:mrf_simple, :report_removal], ["remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :report_removal], [{"remote.instance", "muh"}]) |
|
|
|
report_message = build_report_message() |
|
|
|
local_message = build_local_message() |
|
|
|
|
|
|
@@ -124,7 +124,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "match with wildcard domain" do |
|
|
|
clear_config([:mrf_simple, :report_removal], ["*.remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :report_removal], [{"*.remote.instance", "suya"}]) |
|
|
|
report_message = build_report_message() |
|
|
|
local_message = build_local_message() |
|
|
|
|
|
|
@@ -159,7 +159,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
|> URI.parse() |
|
|
|
|> Map.fetch!(:host) |
|
|
|
|
|
|
|
clear_config([:mrf_simple, :federated_timeline_removal], [ftl_message_actor_host]) |
|
|
|
clear_config([:mrf_simple, :federated_timeline_removal], [{ftl_message_actor_host, "uwu"}]) |
|
|
|
local_message = build_local_message() |
|
|
|
|
|
|
|
assert {:ok, ftl_message} = SimplePolicy.filter(ftl_message) |
|
|
@@ -180,7 +180,10 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
|> URI.parse() |
|
|
|
|> Map.fetch!(:host) |
|
|
|
|
|
|
|
clear_config([:mrf_simple, :federated_timeline_removal], ["*." <> ftl_message_actor_host]) |
|
|
|
clear_config([:mrf_simple, :federated_timeline_removal], [ |
|
|
|
{"*." <> ftl_message_actor_host, "owo"} |
|
|
|
]) |
|
|
|
|
|
|
|
local_message = build_local_message() |
|
|
|
|
|
|
|
assert {:ok, ftl_message} = SimplePolicy.filter(ftl_message) |
|
|
@@ -203,7 +206,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
|
|
|
|
ftl_message = Map.put(ftl_message, "cc", []) |
|
|
|
|
|
|
|
clear_config([:mrf_simple, :federated_timeline_removal], [ftl_message_actor_host]) |
|
|
|
clear_config([:mrf_simple, :federated_timeline_removal], [ |
|
|
|
{ftl_message_actor_host, "spiderwaifu goes 88w88"} |
|
|
|
]) |
|
|
|
|
|
|
|
assert {:ok, ftl_message} = SimplePolicy.filter(ftl_message) |
|
|
|
refute "https://www.w3.org/ns/activitystreams#Public" in ftl_message["to"] |
|
|
@@ -232,7 +237,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "activity has a matching host" do |
|
|
|
clear_config([:mrf_simple, :reject], ["remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :reject], [{"remote.instance", ""}]) |
|
|
|
|
|
|
|
remote_message = build_remote_message() |
|
|
|
|
|
|
@@ -240,7 +245,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "activity matches with wildcard domain" do |
|
|
|
clear_config([:mrf_simple, :reject], ["*.remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :reject], [{"*.remote.instance", ""}]) |
|
|
|
|
|
|
|
remote_message = build_remote_message() |
|
|
|
|
|
|
@@ -248,7 +253,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "actor has a matching host" do |
|
|
|
clear_config([:mrf_simple, :reject], ["remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :reject], [{"remote.instance", ""}]) |
|
|
|
|
|
|
|
remote_user = build_remote_user() |
|
|
|
|
|
|
@@ -256,7 +261,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "reject Announce when object would be rejected" do |
|
|
|
clear_config([:mrf_simple, :reject], ["blocked.tld"]) |
|
|
|
clear_config([:mrf_simple, :reject], [{"blocked.tld", ""}]) |
|
|
|
|
|
|
|
announce = %{ |
|
|
|
"type" => "Announce", |
|
|
@@ -268,7 +273,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "reject by URI object" do |
|
|
|
clear_config([:mrf_simple, :reject], ["blocked.tld"]) |
|
|
|
clear_config([:mrf_simple, :reject], [{"blocked.tld", ""}]) |
|
|
|
|
|
|
|
announce = %{ |
|
|
|
"type" => "Announce", |
|
|
@@ -322,7 +327,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
|> URI.parse() |
|
|
|
|> Map.fetch!(:host) |
|
|
|
|
|
|
|
clear_config([:mrf_simple, :followers_only], [actor_domain]) |
|
|
|
clear_config([:mrf_simple, :followers_only], [{actor_domain, ""}]) |
|
|
|
|
|
|
|
assert {:ok, new_activity} = SimplePolicy.filter(activity) |
|
|
|
assert actor.follower_address in new_activity["cc"] |
|
|
@@ -350,7 +355,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "is not empty but activity doesn't have a matching host" do |
|
|
|
clear_config([:mrf_simple, :accept], ["non.matching.remote"]) |
|
|
|
clear_config([:mrf_simple, :accept], [{"non.matching.remote", ""}]) |
|
|
|
|
|
|
|
local_message = build_local_message() |
|
|
|
remote_message = build_remote_message() |
|
|
@@ -360,7 +365,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "activity has a matching host" do |
|
|
|
clear_config([:mrf_simple, :accept], ["remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :accept], [{"remote.instance", ""}]) |
|
|
|
|
|
|
|
local_message = build_local_message() |
|
|
|
remote_message = build_remote_message() |
|
|
@@ -370,7 +375,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "activity matches with wildcard domain" do |
|
|
|
clear_config([:mrf_simple, :accept], ["*.remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :accept], [{"*.remote.instance", ""}]) |
|
|
|
|
|
|
|
local_message = build_local_message() |
|
|
|
remote_message = build_remote_message() |
|
|
@@ -380,7 +385,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "actor has a matching host" do |
|
|
|
clear_config([:mrf_simple, :accept], ["remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :accept], [{"remote.instance", ""}]) |
|
|
|
|
|
|
|
remote_user = build_remote_user() |
|
|
|
|
|
|
@@ -398,7 +403,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "is not empty but it doesn't have a matching host" do |
|
|
|
clear_config([:mrf_simple, :avatar_removal], ["non.matching.remote"]) |
|
|
|
clear_config([:mrf_simple, :avatar_removal], [{"non.matching.remote", ""}]) |
|
|
|
|
|
|
|
remote_user = build_remote_user() |
|
|
|
|
|
|
@@ -406,7 +411,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "has a matching host" do |
|
|
|
clear_config([:mrf_simple, :avatar_removal], ["remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :avatar_removal], [{"remote.instance", ""}]) |
|
|
|
|
|
|
|
remote_user = build_remote_user() |
|
|
|
{:ok, filtered} = SimplePolicy.filter(remote_user) |
|
|
@@ -415,7 +420,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "match with wildcard domain" do |
|
|
|
clear_config([:mrf_simple, :avatar_removal], ["*.remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :avatar_removal], [{"*.remote.instance", ""}]) |
|
|
|
|
|
|
|
remote_user = build_remote_user() |
|
|
|
{:ok, filtered} = SimplePolicy.filter(remote_user) |
|
|
@@ -434,7 +439,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "is not empty but it doesn't have a matching host" do |
|
|
|
clear_config([:mrf_simple, :banner_removal], ["non.matching.remote"]) |
|
|
|
clear_config([:mrf_simple, :banner_removal], [{"non.matching.remote", ""}]) |
|
|
|
|
|
|
|
remote_user = build_remote_user() |
|
|
|
|
|
|
@@ -442,7 +447,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "has a matching host" do |
|
|
|
clear_config([:mrf_simple, :banner_removal], ["remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :banner_removal], [{"remote.instance", ""}]) |
|
|
|
|
|
|
|
remote_user = build_remote_user() |
|
|
|
{:ok, filtered} = SimplePolicy.filter(remote_user) |
|
|
@@ -451,7 +456,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "match with wildcard domain" do |
|
|
|
clear_config([:mrf_simple, :banner_removal], ["*.remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :banner_removal], [{"*.remote.instance", ""}]) |
|
|
|
|
|
|
|
remote_user = build_remote_user() |
|
|
|
{:ok, filtered} = SimplePolicy.filter(remote_user) |
|
|
@@ -464,7 +469,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
setup do: clear_config([:mrf_simple, :reject_deletes], []) |
|
|
|
|
|
|
|
test "it accepts deletions even from rejected servers" do |
|
|
|
clear_config([:mrf_simple, :reject], ["remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :reject], [{"remote.instance", ""}]) |
|
|
|
|
|
|
|
deletion_message = build_remote_deletion_message() |
|
|
|
|
|
|
@@ -472,7 +477,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "it accepts deletions even from non-whitelisted servers" do |
|
|
|
clear_config([:mrf_simple, :accept], ["non.matching.remote"]) |
|
|
|
clear_config([:mrf_simple, :accept], [{"non.matching.remote", ""}]) |
|
|
|
|
|
|
|
deletion_message = build_remote_deletion_message() |
|
|
|
|
|
|
@@ -481,10 +486,10 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
describe "when :reject_deletes is not empty but it doesn't have a matching host" do |
|
|
|
setup do: clear_config([:mrf_simple, :reject_deletes], ["non.matching.remote"]) |
|
|
|
setup do: clear_config([:mrf_simple, :reject_deletes], [{"non.matching.remote", ""}]) |
|
|
|
|
|
|
|
test "it accepts deletions even from rejected servers" do |
|
|
|
clear_config([:mrf_simple, :reject], ["remote.instance"]) |
|
|
|
clear_config([:mrf_simple, :reject], [{"remote.instance", ""}]) |
|
|
|
|
|
|
|
deletion_message = build_remote_deletion_message() |
|
|
|
|
|
|
@@ -492,7 +497,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
test "it accepts deletions even from non-whitelisted servers" do |
|
|
|
clear_config([:mrf_simple, :accept], ["non.matching.remote"]) |
|
|
|
clear_config([:mrf_simple, :accept], [{"non.matching.remote", ""}]) |
|
|
|
|
|
|
|
deletion_message = build_remote_deletion_message() |
|
|
|
|
|
|
@@ -501,7 +506,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
describe "when :reject_deletes has a matching host" do |
|
|
|
setup do: clear_config([:mrf_simple, :reject_deletes], ["remote.instance"]) |
|
|
|
setup do: clear_config([:mrf_simple, :reject_deletes], [{"remote.instance", ""}]) |
|
|
|
|
|
|
|
test "it rejects the deletion" do |
|
|
|
deletion_message = build_remote_deletion_message() |
|
|
@@ -511,7 +516,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do |
|
|
|
end |
|
|
|
|
|
|
|
describe "when :reject_deletes match with wildcard domain" do |
|
|
|
setup do: clear_config([:mrf_simple, :reject_deletes], ["*.remote.instance"]) |
|
|
|
setup do: clear_config([:mrf_simple, :reject_deletes], [{"*.remote.instance", ""}]) |
|
|
|
|
|
|
|
test "it rejects the deletion" do |
|
|
|
deletion_message = build_remote_deletion_message() |
|
|
|