ForceBotUnlistedPolicy: add test
authorAlibek Omarov <a1ba.omarov@gmail.com>
Mon, 7 Sep 2020 20:50:37 +0000 (22:50 +0200)
committerGitea <gitea@fake.local>
Mon, 7 Sep 2020 20:50:57 +0000 (22:50 +0200)
test/web/activity_pub/mrf/force_bot_unlisted_policy_test.ex [new file with mode: 0644]

diff --git a/test/web/activity_pub/mrf/force_bot_unlisted_policy_test.ex b/test/web/activity_pub/mrf/force_bot_unlisted_policy_test.ex
new file mode 100644 (file)
index 0000000..84e2a90
--- /dev/null
@@ -0,0 +1,58 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicyTest do
+  use Pleroma.DataCase
+  import Pleroma.Factory
+
+  import Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicy
+
+  defp generate_messages(actor) do
+    {%{
+      "actor" => actor.ap_id,
+      "type" => "Create",
+      "object" => %{},
+      "to" => [@public, "f"],
+      "cc" => [actor.follower_address, "d"]
+    }, %{
+      "actor" => actor.ap_id,
+      "type" => "Create",
+      "object" => %{"to" => ["f", actor.follower_address], "cc" => ["d", @public]},
+      "to" => ["f", actor.follower_address],
+      "cc" => ["d", @public]
+    }}
+  end
+
+  test "removes from the federated timeline by nickname heuristics 1" do
+    actor = insert(:user, %{nickname: "annoying_ebooks@example.com"})
+
+    {message, except_message} = generate_messages(actor)
+
+    assert ForceBotUnlistedPolicy.filter(message) == {:ok, except_message}
+  end
+
+  test "removes from the federated timeline by nickname heuristics 2" do
+    actor = insert(:user, %{nickname: "cirnonewsnetworkbot@meow.cat"})
+
+    {message, except_message} = generate_messages(actor)
+
+    assert ForceBotUnlistedPolicy.filter(message) == {:ok, except_message}
+  end
+
+  test "removes from the federated timeline by actor type Application" do
+    actor = insert(:user, %{actor_type: "Application"})
+
+    {message, except_message} = generate_messages(actor)
+
+    assert ForceBotUnlistedPolicy.filter(message) == {:ok, except_message}
+  end
+
+  test "removes from the federated timeline by actor type Service" do
+    actor = insert(:user, %{actor_type: "Service"})
+
+    {message, except_message} = generate_messages(actor)
+
+    assert ForceBotUnlistedPolicy.filter(message) == {:ok, except_message}
+  end
+end