diff options
author | kaniini <nenolod@gmail.com> | 2018-08-16 15:19:46 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2018-08-16 15:19:46 +0000 |
commit | 38361e7b5e24cbbd4654bd76fce4b3c66562ab59 (patch) | |
tree | 020fc1934e8aef655e7bf3648f034237a609ad74 | |
parent | 8dc715b30bf310d040f72c0c01a5c668c3696b2a (diff) | |
parent | 9c1b6f11c501756362342b5652769c9dfd12e77c (diff) | |
download | pleroma-38361e7b5e24cbbd4654bd76fce4b3c66562ab59.tar.gz |
Merge branch 'fix/put-repeats-at-activitypub-outbox' into 'develop'
Fix: Output repeats at ActivityPub outbox
Closes #191
See merge request pleroma/pleroma!175
-rw-r--r-- | lib/pleroma/web/activity_pub/views/user_view.ex | 9 | ||||
-rw-r--r-- | test/support/factory.ex | 20 | ||||
-rw-r--r-- | test/web/activity_pub/activity_pub_controller_test.exs | 26 |
3 files changed, 48 insertions, 7 deletions
diff --git a/lib/pleroma/web/activity_pub/views/user_view.ex b/lib/pleroma/web/activity_pub/views/user_view.ex index 41bfe5048..0b1d5a9fa 100644 --- a/lib/pleroma/web/activity_pub/views/user_view.ex +++ b/lib/pleroma/web/activity_pub/views/user_view.ex @@ -98,9 +98,6 @@ defmodule Pleroma.Web.ActivityPub.UserView do info = User.user_info(user) params = %{ - "type" => ["Create", "Announce"], - "actor_id" => user.ap_id, - "whole_db" => true, "limit" => "10" } @@ -111,10 +108,8 @@ defmodule Pleroma.Web.ActivityPub.UserView do params end - activities = ActivityPub.fetch_public_activities(params) - min_id = Enum.at(activities, 0).id - - activities = Enum.reverse(activities) + activities = ActivityPub.fetch_user_activities(user, nil, params) + min_id = Enum.at(Enum.reverse(activities), 0).id max_id = Enum.at(activities, 0).id collection = diff --git a/test/support/factory.ex b/test/support/factory.ex index 6c48d390f..4f5060abf 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -92,6 +92,26 @@ defmodule Pleroma.Factory do } end + def announce_activity_factory do + note_activity = insert(:note_activity) + user = insert(:user) + + data = %{ + "type" => "Announce", + "actor" => note_activity.actor, + "object" => note_activity.data["id"], + "to" => [user.follower_address, note_activity.data["actor"]], + "cc" => ["https://www.w3.org/ns/activitystreams#Public"], + "context" => note_activity.data["context"] + } + + %Pleroma.Activity{ + data: data, + actor: user.ap_id, + recipients: data["to"] + } + end + def like_activity_factory do note_activity = insert(:note_activity) user = insert(:user) diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs index bbf89136b..3ed7be402 100644 --- a/test/web/activity_pub/activity_pub_controller_test.exs +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -62,6 +62,32 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do end end + describe "/users/:nickname/outbox" do + test "it returns a note activity in a collection", %{conn: conn} do + note_activity = insert(:note_activity) + user = User.get_cached_by_ap_id(note_activity.data["actor"]) + + conn = + conn + |> put_req_header("accept", "application/activity+json") + |> get("/users/#{user.nickname}/outbox") + + assert response(conn, 200) =~ note_activity.data["object"]["content"] + end + + test "it returns an announce activity in a collection", %{conn: conn} do + announce_activity = insert(:announce_activity) + user = User.get_cached_by_ap_id(announce_activity.data["actor"]) + + conn = + conn + |> put_req_header("accept", "application/activity+json") + |> get("/users/#{user.nickname}/outbox") + + assert response(conn, 200) =~ announce_activity.data["object"] + end + end + describe "/users/:nickname/followers" do test "it returns the followers in a collection", %{conn: conn} do user = insert(:user) |