diff options
author | kaniini <nenolod@gmail.com> | 2018-10-26 06:45:38 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2018-10-26 06:45:38 +0000 |
commit | 44762daf5193fd8c4919ebb00214316dfd9d6f5c (patch) | |
tree | ba03da29d6805b09b328c5030a2942728455b635 /test | |
parent | 9b39670683af82e120689753e20c5fb39ed51ba0 (diff) | |
parent | 2ac13061afe4c360bb98ba8f05bc540b2cf27e74 (diff) | |
download | pleroma-44762daf5193fd8c4919ebb00214316dfd9d6f5c.tar.gz pleroma-44762daf5193fd8c4919ebb00214316dfd9d6f5c.zip |
Merge branch 'feature/broken-thread-filtering' into 'develop'
broken thread filtering, part 1
See merge request pleroma/pleroma!394
Diffstat (limited to 'test')
-rw-r--r-- | test/web/activity_pub/activity_pub_test.exs | 48 |
1 files changed, 48 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..35c381ac3 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -476,6 +476,54 @@ 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( |