Merge branch 'fix/tootdon-mentions' into 'develop'
[akkoma] / test / web / activity_pub / activity_pub_test.exs
index 4388215f81677cf15825f3241414aeea9750def8..f50509b630522f22b5df2744202a0bdd0c558418 100644 (file)
@@ -52,6 +52,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
     test "removes doubled 'to' recipients" do
       {:ok, activity} = ActivityPub.create(["user1", "user1", "user2"], %User{ap_id: "1"}, "", %{})
       assert activity.data["to"] == ["user1", "user2"]
+      assert activity.actor == "1"
     end
   end
 
@@ -73,15 +74,44 @@ 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
+
       %{public: public} = ActivityBuilder.public_and_non_public
 
       activities = ActivityPub.fetch_public_activities
@@ -256,6 +286,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
       assert delete.data["actor"] == note.data["actor"]
       assert delete.data["object"] == note.data["object"]["id"]
 
+      assert Repo.get(Activity, delete.id) != nil
+
       assert Repo.get(Object, object.id) == nil
     end
   end