forked from AkkomaGang/akkoma
tests: add tests for banner and avatar removal
This commit is contained in:
parent
baf72d6c58
commit
8086c7aed6
1 changed files with 72 additions and 1 deletions
|
@ -17,7 +17,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do
|
||||||
federated_timeline_removal: [],
|
federated_timeline_removal: [],
|
||||||
report_removal: [],
|
report_removal: [],
|
||||||
reject: [],
|
reject: [],
|
||||||
accept: []
|
accept: [],
|
||||||
|
avatar_removal: [],
|
||||||
|
banner_removal: []
|
||||||
)
|
)
|
||||||
|
|
||||||
on_exit(fn ->
|
on_exit(fn ->
|
||||||
|
@ -206,6 +208,60 @@ test "has a matching host" do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "when :avatar_removal" do
|
||||||
|
test "is empty" do
|
||||||
|
Config.put([:mrf_simple, :avatar_removal], [])
|
||||||
|
|
||||||
|
remote_user = build_remote_user()
|
||||||
|
|
||||||
|
assert SimplePolicy.filter(remote_user) == {:ok, remote_user}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "is not empty but it doesn't have a matching host" do
|
||||||
|
Config.put([:mrf_simple, :avatar_removal], ["non.matching.remote"])
|
||||||
|
|
||||||
|
remote_user = build_remote_user()
|
||||||
|
|
||||||
|
assert SimplePolicy.filter(remote_user) == {:ok, remote_user}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "has a matching host" do
|
||||||
|
Config.put([:mrf_simple, :avatar_removal], ["remote.instance"])
|
||||||
|
|
||||||
|
remote_user = build_remote_user()
|
||||||
|
{:ok, filtered} = SimplePolicy.filter(remote_user)
|
||||||
|
|
||||||
|
refute filtered["icon"]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "when :banner_removal" do
|
||||||
|
test "is empty" do
|
||||||
|
Config.put([:mrf_simple, :banner_removal], [])
|
||||||
|
|
||||||
|
remote_user = build_remote_user()
|
||||||
|
|
||||||
|
assert SimplePolicy.filter(remote_user) == {:ok, remote_user}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "is not empty but it doesn't have a matching host" do
|
||||||
|
Config.put([:mrf_simple, :banner_removal], ["non.matching.remote"])
|
||||||
|
|
||||||
|
remote_user = build_remote_user()
|
||||||
|
|
||||||
|
assert SimplePolicy.filter(remote_user) == {:ok, remote_user}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "has a matching host" do
|
||||||
|
Config.put([:mrf_simple, :banner_removal], ["remote.instance"])
|
||||||
|
|
||||||
|
remote_user = build_remote_user()
|
||||||
|
{:ok, filtered} = SimplePolicy.filter(remote_user)
|
||||||
|
|
||||||
|
refute filtered["image"]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
defp build_local_message do
|
defp build_local_message do
|
||||||
%{
|
%{
|
||||||
"actor" => "#{Pleroma.Web.base_url()}/users/alice",
|
"actor" => "#{Pleroma.Web.base_url()}/users/alice",
|
||||||
|
@ -217,4 +273,19 @@ defp build_local_message do
|
||||||
defp build_remote_message do
|
defp build_remote_message do
|
||||||
%{"actor" => "https://remote.instance/users/bob"}
|
%{"actor" => "https://remote.instance/users/bob"}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp build_remote_user do
|
||||||
|
%{
|
||||||
|
"id" => "https://remote.instance/users/bob",
|
||||||
|
"icon" => %{
|
||||||
|
"url" => "http://example.com/image.jpg",
|
||||||
|
"type" => "Image"
|
||||||
|
},
|
||||||
|
"image" => %{
|
||||||
|
"url" => "http://example.com/image.jpg",
|
||||||
|
"type" => "Image"
|
||||||
|
},
|
||||||
|
"type" => "Person"
|
||||||
|
}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue