aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2018-10-26 06:35:06 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2018-10-26 06:35:06 +0000
commit0d0c1dcf440707535afa852503e9afa049cd8374 (patch)
tree3645c9ef563e8a6ebd5c91998383e19a72cbf3c1
parent26eb11c172e2de2db0f4c51a9df5f0369fb37a95 (diff)
downloadpleroma-0d0c1dcf440707535afa852503e9afa049cd8374.tar.gz
tests: add testsuite for broken thread filter
-rw-r--r--test/web/activity_pub/activity_pub_test.exs36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs
index 1cf7d6bbc..14011a010 100644
--- a/test/web/activity_pub/activity_pub_test.exs
+++ b/test/web/activity_pub/activity_pub_test.exs
@@ -476,6 +476,42 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
end
end
+ describe "timeline post-processing" do
+ test "it filters broken threads" do
+ user1 = insert(:user)
+ user2 = insert(:user)
+ user3 = insert(:user)
+
+ {:ok, user1} = User.follow(user1, user3)
+ assert User.following?(user1, user3)
+
+ {:ok, user2} = User.follow(user2, user3)
+ assert User.following?(user2, user3)
+
+ {:ok, user3} = User.follow(user3, user2)
+ assert User.following?(user3, user2)
+
+ {:ok, public_activity} = CommonAPI.post(user3, %{"status" => "hi 1"})
+
+ {:ok, private_activity_1} = CommonAPI.post(user3, %{"status" => "hi 2", "visibility" => "private"})
+ {:ok, private_activity_2} = CommonAPI.post(user2, %{"status" => "hi 3", "visibility" => "private", "in_reply_to_status_id" => private_activity_1.id})
+ {:ok, private_activity_3} = CommonAPI.post(user3, %{"status" => "hi 4", "visibility" => "private", "in_reply_to_status_id" => private_activity_2.id})
+
+ assert user1.following == [user3.ap_id <> "/followers", user1.ap_id]
+
+ activities =
+ ActivityPub.fetch_activities([user1.ap_id | user1.following])
+
+ assert [public_activity, private_activity_1, private_activity_3] == activities
+ assert length(activities) == 3
+
+ activities = ActivityPub.contain_timeline(activities, user1)
+
+ assert [public_activity, private_activity_1] == activities
+ assert length(activities) == 2
+ end
+ end
+
test "it can fetch plume articles" do
{:ok, object} =
ActivityPub.fetch_object_from_id(