ActivityPub: Fetch missing activities on reply.

This commit is contained in:
lain 2018-02-21 15:22:24 +01:00
commit 810cf8618f
4 changed files with 41 additions and 5 deletions

View file

@ -268,7 +268,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
describe "fetching an object" do
test "it fetches an object" do
{:ok, object} = ActivityPub.fetch_object_from_id("http://mastodon.example.org/@admin/99541947525187367")
assert Activity.get_create_activity_by_object_ap_id(object.data["id"])
assert activity = Activity.get_create_activity_by_object_ap_id(object.data["id"])
assert activity.data["id"]
{:ok, object_again} = ActivityPub.fetch_object_from_id("http://mastodon.example.org/@admin/99541947525187367")
assert [attachment] = object.data["attachment"]
@ -276,6 +278,16 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
assert object == object_again
end
test "it works with objects only available via Ostatus" do
{:ok, object} = ActivityPub.fetch_object_from_id("https://shitposter.club/notice/2827873")
assert activity = Activity.get_create_activity_by_object_ap_id(object.data["id"])
assert activity.data["id"]
{:ok, object_again} = ActivityPub.fetch_object_from_id("https://shitposter.club/notice/2827873")
assert object == object_again
end
end
describe "following / unfollowing" do

View file

@ -22,6 +22,21 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
assert activity == returned_activity
end
test "it fetches replied-to activities if we don't have them" do
data = File.read!("test/fixtures/mastodon-post-activity.json")
|> Poison.decode!
object = data["object"]
|> Map.put("inReplyTo", "https://shitposter.club/notice/2827873")
data = data
|> Map.put("object", object)
{:ok, returned_activity} = Transmogrifier.handle_incoming(data)
assert Activity.get_create_activity_by_object_ap_id("tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment")
end
test "it works for incoming notices" do
data = File.read!("test/fixtures/mastodon-post-activity.json") |> Poison.decode!