diff options
Diffstat (limited to 'test/web/activity_pub/mrf')
| -rw-r--r-- | test/web/activity_pub/mrf/mention_policy_test.exs | 92 | 
1 files changed, 92 insertions, 0 deletions
diff --git a/test/web/activity_pub/mrf/mention_policy_test.exs b/test/web/activity_pub/mrf/mention_policy_test.exs new file mode 100644 index 000000000..9fd9c31df --- /dev/null +++ b/test/web/activity_pub/mrf/mention_policy_test.exs @@ -0,0 +1,92 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.MRF.MentionPolicyTest do +  use Pleroma.DataCase + +  alias Pleroma.Web.ActivityPub.MRF.MentionPolicy + +  test "pass filter if allow list is empty" do +    Pleroma.Config.delete([:mrf_mention]) + +    message = %{ +      "type" => "Create", +      "to" => ["https://example.com/ok"], +      "cc" => ["https://example.com/blocked"] +    } + +    assert MentionPolicy.filter(message) == {:ok, message} +  end + +  describe "allow" do +    test "empty" do +      Pleroma.Config.put([:mrf_mention], %{actors: ["https://example.com/blocked"]}) + +      message = %{ +        "type" => "Create" +      } + +      assert MentionPolicy.filter(message) == {:ok, message} +    end + +    test "to" do +      Pleroma.Config.put([:mrf_mention], %{actors: ["https://example.com/blocked"]}) + +      message = %{ +        "type" => "Create", +        "to" => ["https://example.com/ok"] +      } + +      assert MentionPolicy.filter(message) == {:ok, message} +    end + +    test "cc" do +      Pleroma.Config.put([:mrf_mention], %{actors: ["https://example.com/blocked"]}) + +      message = %{ +        "type" => "Create", +        "cc" => ["https://example.com/ok"] +      } + +      assert MentionPolicy.filter(message) == {:ok, message} +    end + +    test "both" do +      Pleroma.Config.put([:mrf_mention], %{actors: ["https://example.com/blocked"]}) + +      message = %{ +        "type" => "Create", +        "to" => ["https://example.com/ok"], +        "cc" => ["https://example.com/ok2"] +      } + +      assert MentionPolicy.filter(message) == {:ok, message} +    end +  end + +  describe "deny" do +    test "to" do +      Pleroma.Config.put([:mrf_mention], %{actors: ["https://example.com/blocked"]}) + +      message = %{ +        "type" => "Create", +        "to" => ["https://example.com/blocked"] +      } + +      assert MentionPolicy.filter(message) == {:reject, nil} +    end + +    test "cc" do +      Pleroma.Config.put([:mrf_mention], %{actors: ["https://example.com/blocked"]}) + +      message = %{ +        "type" => "Create", +        "to" => ["https://example.com/ok"], +        "cc" => ["https://example.com/blocked"] +      } + +      assert MentionPolicy.filter(message) == {:reject, nil} +    end +  end +end  | 
