diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/web/activity_pub/mrf/hellthread_policy_test.exs | 50 | 
1 files changed, 50 insertions, 0 deletions
diff --git a/test/web/activity_pub/mrf/hellthread_policy_test.exs b/test/web/activity_pub/mrf/hellthread_policy_test.exs new file mode 100644 index 000000000..b5bdd35cc --- /dev/null +++ b/test/web/activity_pub/mrf/hellthread_policy_test.exs @@ -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  | 
