aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2019-07-14 00:56:02 +0300
committerrinpatch <rinpatch@sdf.org>2019-07-14 00:56:02 +0300
commit183da33e005c8a8e8472350a3b6b36ff6f82d67d (patch)
treef88346e4e9c371570b1460fded17b4c9289e4887 /test
parentd06d1b751d44802c5c3701f916ae2ce7d3c3be56 (diff)
downloadpleroma-183da33e005c8a8e8472350a3b6b36ff6f82d67d.tar.gz
Add tests for fetch_follow_information_for_user and check object type
when fetching the page
Diffstat (limited to 'test')
-rw-r--r--test/web/activity_pub/activity_pub_test.exs81
1 files changed, 81 insertions, 0 deletions
diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs
index 59d56f3a7..448ffbf54 100644
--- a/test/web/activity_pub/activity_pub_test.exs
+++ b/test/web/activity_pub/activity_pub_test.exs
@@ -1222,4 +1222,85 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
assert result.id == activity.id
end
end
+
+ describe "fetch_follow_information_for_user" do
+ test "syncronizes following/followers counters" do
+ user =
+ insert(:user,
+ local: false,
+ follower_address: "http://localhost:4001/users/fuser2/followers",
+ following_address: "http://localhost:4001/users/fuser2/following"
+ )
+
+ {:ok, user} = ActivityPub.fetch_follow_information_for_user(user)
+ assert user.info.follower_count == 527
+ assert user.info.following_count == 267
+ end
+
+ test "detects hidden followers" do
+ mock(fn env ->
+ case env.url do
+ "http://localhost:4001/users/masto_closed/followers?page=1" ->
+ %Tesla.Env{status: 403, body: ""}
+
+ "http://localhost:4001/users/masto_closed/following?page=1" ->
+ %Tesla.Env{
+ status: 200,
+ body:
+ Jason.encode!(%{
+ "id" => "http://localhost:4001/users/masto_closed/following?page=1",
+ "type" => "OrderedCollectionPage"
+ })
+ }
+
+ _ ->
+ apply(HttpRequestMock, :request, [env])
+ end
+ end)
+
+ user =
+ insert(:user,
+ local: false,
+ follower_address: "http://localhost:4001/users/masto_closed/followers",
+ following_address: "http://localhost:4001/users/masto_closed/following"
+ )
+
+ {:ok, user} = ActivityPub.fetch_follow_information_for_user(user)
+ assert user.info.hide_followers == true
+ assert user.info.hide_follows == false
+ end
+
+ test "detects hidden follows" do
+ mock(fn env ->
+ case env.url do
+ "http://localhost:4001/users/masto_closed/following?page=1" ->
+ %Tesla.Env{status: 403, body: ""}
+
+ "http://localhost:4001/users/masto_closed/followers?page=1" ->
+ %Tesla.Env{
+ status: 200,
+ body:
+ Jason.encode!(%{
+ "id" => "http://localhost:4001/users/masto_closed/followers?page=1",
+ "type" => "OrderedCollectionPage"
+ })
+ }
+
+ _ ->
+ apply(HttpRequestMock, :request, [env])
+ end
+ end)
+
+ user =
+ insert(:user,
+ local: false,
+ follower_address: "http://localhost:4001/users/masto_closed/followers",
+ following_address: "http://localhost:4001/users/masto_closed/following"
+ )
+
+ {:ok, user} = ActivityPub.fetch_follow_information_for_user(user)
+ assert user.info.hide_followers == false
+ assert user.info.hide_follows == true
+ end
+ end
end