Browse Source

Merge branch 'fix/put-repeats-at-activitypub-outbox' into 'develop'

Fix: Output repeats at ActivityPub outbox

Closes #191

See merge request pleroma/pleroma!175
tags/v0.9.9
kaniini 5 years ago
parent
commit
38361e7b5e
3 changed files with 48 additions and 7 deletions
  1. +2
    -7
      lib/pleroma/web/activity_pub/views/user_view.ex
  2. +20
    -0
      test/support/factory.ex
  3. +26
    -0
      test/web/activity_pub/activity_pub_controller_test.exs

+ 2
- 7
lib/pleroma/web/activity_pub/views/user_view.ex View File

@@ -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 =


+ 20
- 0
test/support/factory.ex View File

@@ -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)


+ 26
- 0
test/web/activity_pub/activity_pub_controller_test.exs View File

@@ -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)


Loading…
Cancel
Save