Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into develop
[akkoma] / test / web / activity_pub / activity_pub_test.exs
index 48597f5fbcd55e834beb45916f1e0fb153c0f410..2cd33d623ee42a7c29b2df54494ce7e91ea91900 100644 (file)
@@ -73,13 +73,40 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
       {:ok, activity_two} = ActivityBuilder.insert(%{"type" => "Create", "context" => "2hu"})
       {:ok, _activity_three} = ActivityBuilder.insert(%{"type" => "Create", "context" => "3hu"})
       {:ok, _activity_four} = ActivityBuilder.insert(%{"type" => "Announce", "context" => "2hu"})
+      activity_five = insert(:note_activity)
+      user = insert(:user)
 
-      activities = ActivityPub.fetch_activities_for_context("2hu")
+      {:ok, user} = User.block(user, %{ap_id: activity_five.data["actor"]})
 
+      activities = ActivityPub.fetch_activities_for_context("2hu", %{"blocking_user" => user})
       assert activities == [activity_two, activity]
     end
   end
 
+  test "doesn't return blocked activities" do
+    activity_one = insert(:note_activity)
+    activity_two = insert(:note_activity)
+    user = insert(:user)
+    {:ok, user} = User.block(user, %{ap_id: activity_one.data["actor"]})
+
+    activities = ActivityPub.fetch_activities([], %{"blocking_user" => user})
+
+    assert Enum.member?(activities, activity_two)
+    refute Enum.member?(activities, activity_one)
+
+    {:ok, user} = User.unblock(user, %{ap_id: activity_one.data["actor"]})
+
+    activities = ActivityPub.fetch_activities([], %{"blocking_user" => user})
+
+    assert Enum.member?(activities, activity_two)
+    assert Enum.member?(activities, activity_one)
+
+    activities = ActivityPub.fetch_activities([], %{"blocking_user" => nil})
+
+    assert Enum.member?(activities, activity_two)
+    assert Enum.member?(activities, activity_one)
+  end
+
   describe "public fetch activities" do
     test "retrieves public activities" do
       activities = ActivityPub.fetch_public_activities