diff options
Diffstat (limited to 'test')
3 files changed, 64 insertions, 0 deletions
diff --git a/test/pleroma/web/activity_pub/activity_pub_test.exs b/test/pleroma/web/activity_pub/activity_pub_test.exs index 64e12066e..a61244c76 100644 --- a/test/pleroma/web/activity_pub/activity_pub_test.exs +++ b/test/pleroma/web/activity_pub/activity_pub_test.exs @@ -776,6 +776,18 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      assert Enum.member?(activities, activity_one)    end +  test "always see your own posts even when they address people you block" do +    user = insert(:user) +    blockee = insert(:user) + +    {:ok, _} = User.block(user, blockee) +    {:ok, activity} = CommonAPI.post(user, %{status: "hey! @#{blockee.nickname}"}) + +    activities = ActivityPub.fetch_activities([], %{blocking_user: user}) + +    assert Enum.member?(activities, activity) +  end +    test "doesn't return transitive interactions concerning blocked users" do      blocker = insert(:user)      blockee = insert(:user) @@ -875,6 +887,21 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      refute repeat_activity in activities    end +  test "see your own posts even when they adress actors from blocked domains" do +    user = insert(:user) + +    domain = "dogwhistle.zone" +    domain_user = insert(:user, %{ap_id: "https://#{domain}/@pundit"}) + +    {:ok, user} = User.block_domain(user, domain) + +    {:ok, activity} = CommonAPI.post(user, %{status: "hey! @#{domain_user.nickname}"}) + +    activities = ActivityPub.fetch_activities([], %{blocking_user: user}) + +    assert Enum.member?(activities, activity) +  end +    test "does return activities from followed users on blocked domains" do      domain = "meanies.social"      domain_user = insert(:user, %{ap_id: "https://#{domain}/@pundit"}) diff --git a/test/pleroma/web/mastodon_api/controllers/notification_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/notification_controller_test.exs index 14bb7dae5..d991f284f 100644 --- a/test/pleroma/web/mastodon_api/controllers/notification_controller_test.exs +++ b/test/pleroma/web/mastodon_api/controllers/notification_controller_test.exs @@ -101,6 +101,25 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      assert [_] = result    end +  test "excludes mentions from blockers when blockers_visible is false" do +    clear_config([:activitypub, :blockers_visible], false) + +    %{user: user, conn: conn} = oauth_access(["read:notifications"]) +    blocker = insert(:user) + +    {:ok, _} = CommonAPI.block(blocker, user) +    {:ok, activity} = CommonAPI.post(blocker, %{status: "hi @#{user.nickname}"}) + +    {:ok, [_notification]} = Notification.create_notifications(activity) + +    conn = +      conn +      |> assign(:user, user) +      |> get("/api/v1/notifications") + +    assert [] == json_response_and_validate_schema(conn, 200) +  end +    test "getting a single notification" do      %{user: user, conn: conn} = oauth_access(["read:notifications"])      other_user = insert(:user) diff --git a/test/pleroma/web/mastodon_api/controllers/timeline_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/timeline_controller_test.exs index ed1286675..187982d92 100644 --- a/test/pleroma/web/mastodon_api/controllers/timeline_controller_test.exs +++ b/test/pleroma/web/mastodon_api/controllers/timeline_controller_test.exs @@ -273,6 +273,24 @@ defmodule Pleroma.Web.MastodonAPI.TimelineControllerTest do        [%{"id" => ^reply_from_me}, %{"id" => ^activity_id}] = response      end +    test "doesn't return posts from users who blocked you when :blockers_visible is disabled" do +      clear_config([:activitypub, :blockers_visible], false) + +      %{conn: conn, user: blockee} = oauth_access(["read:statuses"]) +      blocker = insert(:user) +      {:ok, _} = User.block(blocker, blockee) + +      conn = assign(conn, :user, blockee) + +      {:ok, _} = CommonAPI.post(blocker, %{status: "hey!"}) + +      response = +        get(conn, "/api/v1/timelines/public") +        |> json_response_and_validate_schema(200) + +      assert length(response) == 0 +    end +      test "doesn't return replies if follow is posting with users from blocked domain" do        %{conn: conn, user: blocker} = oauth_access(["read:statuses"])        friend = insert(:user)  | 
