diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/pleroma/web/activity_pub/mrf/anti_followbot_policy_test.exs | 57 | 
1 files changed, 46 insertions, 11 deletions
diff --git a/test/pleroma/web/activity_pub/mrf/anti_followbot_policy_test.exs b/test/pleroma/web/activity_pub/mrf/anti_followbot_policy_test.exs index 8192629c6..732a5a7f3 100644 --- a/test/pleroma/web/activity_pub/mrf/anti_followbot_policy_test.exs +++ b/test/pleroma/web/activity_pub/mrf/anti_followbot_policy_test.exs @@ -6,6 +6,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiFollowbotPolicyTest do    use Pleroma.DataCase, async: true    import Pleroma.Factory +  alias Pleroma.User    alias Pleroma.Web.ActivityPub.MRF.AntiFollowbotPolicy    describe "blocking based on attributes" do @@ -38,21 +39,55 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiFollowbotPolicyTest do        assert {:reject, "[AntiFollowbotPolicy]" <> _} = AntiFollowbotPolicy.filter(message)      end + +    test "matches followbots by actor_type" do +      actor = insert(:user, %{actor_type: "Service"}) +      target = insert(:user) + +      message = %{ +        "@context" => "https://www.w3.org/ns/activitystreams", +        "type" => "Follow", +        "actor" => actor.ap_id, +        "object" => target.ap_id, +        "id" => "https://example.com/activities/1234" +      } + +      assert {:reject, "[AntiFollowbotPolicy]" <> _} = AntiFollowbotPolicy.filter(message) +    end    end -  test "it allows non-followbots" do -    actor = insert(:user) -    target = insert(:user) +  describe "it allows" do +    test "non-followbots" do +      actor = insert(:user) +      target = insert(:user) -    message = %{ -      "@context" => "https://www.w3.org/ns/activitystreams", -      "type" => "Follow", -      "actor" => actor.ap_id, -      "object" => target.ap_id, -      "id" => "https://example.com/activities/1234" -    } +      message = %{ +        "@context" => "https://www.w3.org/ns/activitystreams", +        "type" => "Follow", +        "actor" => actor.ap_id, +        "object" => target.ap_id, +        "id" => "https://example.com/activities/1234" +      } -    {:ok, _} = AntiFollowbotPolicy.filter(message) +      {:ok, _} = AntiFollowbotPolicy.filter(message) +    end + +    test "bots if the target follows the bots" do +      actor = insert(:user, %{actor_type: "Service"}) +      target = insert(:user) + +      User.follow(target, actor) + +      message = %{ +        "@context" => "https://www.w3.org/ns/activitystreams", +        "type" => "Follow", +        "actor" => actor.ap_id, +        "object" => target.ap_id, +        "id" => "https://example.com/activities/1234" +      } + +      {:ok, _} = AntiFollowbotPolicy.filter(message) +    end    end    test "it gracefully handles nil display names" do  | 
