Track object/create activity fetches
This commit is contained in:
parent
50269e9cac
commit
769fb778d4
6 changed files with 206 additions and 2 deletions
|
|
@ -6,6 +6,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do
|
|||
use Pleroma.Web.ConnCase
|
||||
import Pleroma.Factory
|
||||
alias Pleroma.Activity
|
||||
alias Pleroma.Delivery
|
||||
alias Pleroma.Instances
|
||||
alias Pleroma.Object
|
||||
alias Pleroma.User
|
||||
|
|
@ -885,4 +886,86 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do
|
|||
assert result["totalItems"] == 15
|
||||
end
|
||||
end
|
||||
|
||||
describe "delivery tracking" do
|
||||
test "it tracks a signed object fetch", %{conn: conn} do
|
||||
user = insert(:user, local: false)
|
||||
activity = insert(:note_activity)
|
||||
object = Object.normalize(activity)
|
||||
|
||||
object_path = String.trim_leading(object.data["id"], Pleroma.Web.Endpoint.url())
|
||||
|
||||
conn
|
||||
|> put_req_header("accept", "application/activity+json")
|
||||
|> assign(:user, user)
|
||||
|> get(object_path)
|
||||
|> json_response(200)
|
||||
|
||||
assert Delivery.get(object.id, user.id)
|
||||
end
|
||||
|
||||
test "it tracks a signed activity fetch", %{conn: conn} do
|
||||
user = insert(:user, local: false)
|
||||
activity = insert(:note_activity)
|
||||
object = Object.normalize(activity)
|
||||
|
||||
activity_path = String.trim_leading(activity.data["id"], Pleroma.Web.Endpoint.url())
|
||||
|
||||
conn
|
||||
|> put_req_header("accept", "application/activity+json")
|
||||
|> assign(:user, user)
|
||||
|> get(activity_path)
|
||||
|> json_response(200)
|
||||
|
||||
assert Delivery.get(object.id, user.id)
|
||||
end
|
||||
|
||||
test "it tracks a signed object fetch when the json is cached", %{conn: conn} do
|
||||
user = insert(:user, local: false)
|
||||
other_user = insert(:user, local: false)
|
||||
activity = insert(:note_activity)
|
||||
object = Object.normalize(activity)
|
||||
|
||||
object_path = String.trim_leading(object.data["id"], Pleroma.Web.Endpoint.url())
|
||||
|
||||
conn
|
||||
|> put_req_header("accept", "application/activity+json")
|
||||
|> assign(:user, user)
|
||||
|> get(object_path)
|
||||
|> json_response(200)
|
||||
|
||||
build_conn()
|
||||
|> put_req_header("accept", "application/activity+json")
|
||||
|> assign(:user, other_user)
|
||||
|> get(object_path)
|
||||
|> json_response(200)
|
||||
|
||||
assert Delivery.get(object.id, user.id)
|
||||
assert Delivery.get(object.id, other_user.id)
|
||||
end
|
||||
|
||||
test "it tracks a signed activity fetch when the json is cached", %{conn: conn} do
|
||||
user = insert(:user, local: false)
|
||||
other_user = insert(:user, local: false)
|
||||
activity = insert(:note_activity)
|
||||
object = Object.normalize(activity)
|
||||
|
||||
activity_path = String.trim_leading(activity.data["id"], Pleroma.Web.Endpoint.url())
|
||||
|
||||
conn
|
||||
|> put_req_header("accept", "application/activity+json")
|
||||
|> assign(:user, user)
|
||||
|> get(activity_path)
|
||||
|> json_response(200)
|
||||
|
||||
build_conn()
|
||||
|> put_req_header("accept", "application/activity+json")
|
||||
|> assign(:user, other_user)
|
||||
|> get(activity_path)
|
||||
|> json_response(200)
|
||||
|
||||
assert Delivery.get(object.id, user.id)
|
||||
assert Delivery.get(object.id, other_user.id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue