Add tests, change default config values, fix a bug
This commit is contained in:
parent
bef9b9cb66
commit
d943c90249
|
@ -228,8 +228,8 @@
|
|||
allow_direct: false
|
||||
|
||||
config :pleroma, :mrf_hellthread,
|
||||
delist_threshold: 5,
|
||||
reject_threshold: 10
|
||||
delist_threshold: 10,
|
||||
reject_threshold: 20
|
||||
|
||||
config :pleroma, :mrf_simple,
|
||||
media_removal: [],
|
||||
|
|
|
@ -47,14 +47,16 @@ defp get_recipient_count(message) do
|
|||
follower_collection = User.get_cached_by_ap_id(message["actor"]).follower_address
|
||||
|
||||
if Enum.member?(recipients, "https://www.w3.org/ns/activitystreams#Public") do
|
||||
recipients
|
||||
|> List.delete("https://www.w3.org/ns/activitystreams#Public")
|
||||
|> List.delete(follower_collection)
|
||||
recipients =
|
||||
recipients
|
||||
|> List.delete("https://www.w3.org/ns/activitystreams#Public")
|
||||
|> List.delete(follower_collection)
|
||||
|
||||
{:public, length(recipients)}
|
||||
else
|
||||
recipients
|
||||
|> List.delete(follower_collection)
|
||||
recipients =
|
||||
recipients
|
||||
|> List.delete(follower_collection)
|
||||
|
||||
{:not_public, length(recipients)}
|
||||
end
|
||||
|
|
50
test/web/activity_pub/mrf/hellthread_policy_test.exs
Normal file
50
test/web/activity_pub/mrf/hellthread_policy_test.exs
Normal file
|
@ -0,0 +1,50 @@
|
|||
# Pleroma: A lightweight social networking server
|
||||
# Copyright © 2019 Pleroma Authors <https://pleroma.social/>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
defmodule Pleroma.Web.ActivityPub.MRF.HellthreadPolicyTest do
|
||||
use Pleroma.DataCase
|
||||
import Pleroma.Factory
|
||||
|
||||
import Pleroma.Web.ActivityPub.MRF.HellthreadPolicy
|
||||
|
||||
describe "hellthread filter tests" do
|
||||
setup do
|
||||
user = insert(:user)
|
||||
|
||||
message = %{
|
||||
"actor" => user.ap_id,
|
||||
"cc" => [user.follower_address],
|
||||
"type" => "Create",
|
||||
"to" => [
|
||||
"https://www.w3.org/ns/activitystreams#Public",
|
||||
"https://instace.tld/users/user1",
|
||||
"https://instace.tld/users/user2",
|
||||
"https://instace.tld/users/user3"
|
||||
]
|
||||
}
|
||||
|
||||
[user: user, message: message]
|
||||
end
|
||||
|
||||
test "reject test", %{message: message} do
|
||||
Pleroma.Config.put([:mrf_hellthread], %{delist_threshold: 0, reject_threshold: 2})
|
||||
|
||||
{:reject, nil} = filter(message)
|
||||
end
|
||||
|
||||
test "delist test", %{user: user, message: message} do
|
||||
Pleroma.Config.put([:mrf_hellthread], %{delist_threshold: 2, reject_threshold: 0})
|
||||
|
||||
{:ok, message} = filter(message)
|
||||
assert user.follower_address in message["to"]
|
||||
assert "https://www.w3.org/ns/activitystreams#Public" in message["cc"]
|
||||
end
|
||||
|
||||
test "threshold test", %{message: message} do
|
||||
Pleroma.Config.put([:mrf_hellthread], %{delist_threshold: 0, reject_threshold: 3})
|
||||
|
||||
{:ok, _} = filter(message)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue