[#878] Refactored assumptions on embedded object presence in tests. Adjusted note factory to not embed object into activity.
This commit is contained in:
parent
3589b30ddc
commit
daff85a985
17 changed files with 164 additions and 138 deletions
|
|
@ -38,22 +38,23 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do
|
|||
|
||||
test "a note activity" do
|
||||
note_activity = insert(:note_activity)
|
||||
object_data = Object.normalize(note_activity).data
|
||||
|
||||
user = User.get_cached_by_ap_id(note_activity.data["actor"])
|
||||
|
||||
expected = """
|
||||
<activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
|
||||
<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
|
||||
<id>#{note_activity.data["object"]["id"]}</id>
|
||||
<id>#{object_data["id"]}</id>
|
||||
<title>New note by #{user.nickname}</title>
|
||||
<content type="html">#{note_activity.data["object"]["content"]}</content>
|
||||
<published>#{note_activity.data["object"]["published"]}</published>
|
||||
<updated>#{note_activity.data["object"]["published"]}</updated>
|
||||
<content type="html">#{object_data["content"]}</content>
|
||||
<published>#{object_data["published"]}</published>
|
||||
<updated>#{object_data["published"]}</updated>
|
||||
<ostatus:conversation ref="#{note_activity.data["context"]}">#{note_activity.data["context"]}</ostatus:conversation>
|
||||
<link ref="#{note_activity.data["context"]}" rel="ostatus:conversation" />
|
||||
<summary>#{note_activity.data["object"]["summary"]}</summary>
|
||||
<link type="application/atom+xml" href="#{note_activity.data["object"]["id"]}" rel="self" />
|
||||
<link type="text/html" href="#{note_activity.data["object"]["id"]}" rel="alternate" />
|
||||
<summary>#{object_data["summary"]}</summary>
|
||||
<link type="application/atom+xml" href="#{object_data["id"]}" rel="self" />
|
||||
<link type="text/html" href="#{object_data["id"]}" rel="alternate" />
|
||||
<category term="2hu"/>
|
||||
<link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
|
||||
<link name="2hu" rel="emoji" href="corndog.png" />
|
||||
|
|
@ -106,7 +107,7 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do
|
|||
test "an announce activity" do
|
||||
note = insert(:note_activity)
|
||||
user = insert(:user)
|
||||
object = Object.get_cached_by_ap_id(note.data["object"]["id"])
|
||||
object = Object.normalize(note)
|
||||
|
||||
{:ok, announce, _object} = ActivityPub.announce(user, object)
|
||||
|
||||
|
|
@ -125,7 +126,7 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do
|
|||
<activity:verb>http://activitystrea.ms/schema/1.0/share</activity:verb>
|
||||
<id>#{announce.data["id"]}</id>
|
||||
<title>#{user.nickname} repeated a notice</title>
|
||||
<content type="html">RT #{note.data["object"]["content"]}</content>
|
||||
<content type="html">RT #{object.data["content"]}</content>
|
||||
<published>#{announce.data["published"]}</published>
|
||||
<updated>#{announce.data["published"]}</updated>
|
||||
<ostatus:conversation ref="#{announce.data["context"]}">#{announce.data["context"]}</ostatus:conversation>
|
||||
|
|
|
|||
|
|
@ -17,8 +17,9 @@ defmodule Pleroma.Web.OStatus.DeleteHandlingTest do
|
|||
test "it removes the mentioned activity" do
|
||||
note = insert(:note_activity)
|
||||
second_note = insert(:note_activity)
|
||||
object = Object.normalize(note)
|
||||
second_object = Object.normalize(second_note)
|
||||
user = insert(:user)
|
||||
object = Object.get_by_ap_id(note.data["object"]["id"])
|
||||
|
||||
{:ok, like, _object} = Pleroma.Web.ActivityPub.ActivityPub.like(user, object)
|
||||
|
||||
|
|
@ -26,16 +27,16 @@ defmodule Pleroma.Web.OStatus.DeleteHandlingTest do
|
|||
File.read!("test/fixtures/delete.xml")
|
||||
|> String.replace(
|
||||
"tag:mastodon.sdf.org,2017-06-10:objectId=310513:objectType=Status",
|
||||
note.data["object"]["id"]
|
||||
object.data["id"]
|
||||
)
|
||||
|
||||
{:ok, [delete]} = OStatus.handle_incoming(incoming)
|
||||
|
||||
refute Activity.get_by_id(note.id)
|
||||
refute Activity.get_by_id(like.id)
|
||||
assert Object.get_by_ap_id(note.data["object"]["id"]).data["type"] == "Tombstone"
|
||||
assert Object.get_by_ap_id(object.data["id"]).data["type"] == "Tombstone"
|
||||
assert Activity.get_by_id(second_note.id)
|
||||
assert Object.get_by_ap_id(second_note.data["object"]["id"])
|
||||
assert Object.get_by_ap_id(second_object.data["id"])
|
||||
|
||||
assert delete.data["type"] == "Delete"
|
||||
end
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
|
|||
|
||||
test "gets a feed", %{conn: conn} do
|
||||
note_activity = insert(:note_activity)
|
||||
object = Object.normalize(note_activity)
|
||||
user = User.get_cached_by_ap_id(note_activity.data["actor"])
|
||||
|
||||
conn =
|
||||
|
|
@ -72,7 +73,7 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
|
|||
|> put_req_header("content-type", "application/atom+xml")
|
||||
|> get("/users/#{user.nickname}/feed.atom")
|
||||
|
||||
assert response(conn, 200) =~ note_activity.data["object"]["content"]
|
||||
assert response(conn, 200) =~ object.data["content"]
|
||||
end
|
||||
|
||||
test "returns 404 for a missing feed", %{conn: conn} do
|
||||
|
|
@ -86,8 +87,9 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
|
|||
|
||||
test "gets an object", %{conn: conn} do
|
||||
note_activity = insert(:note_activity)
|
||||
object = Object.normalize(note_activity)
|
||||
user = User.get_cached_by_ap_id(note_activity.data["actor"])
|
||||
[_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, note_activity.data["object"]["id"]))
|
||||
[_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, object.data["id"]))
|
||||
url = "/objects/#{uuid}"
|
||||
|
||||
conn =
|
||||
|
|
@ -106,7 +108,8 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
|
|||
|
||||
test "404s on private objects", %{conn: conn} do
|
||||
note_activity = insert(:direct_note_activity)
|
||||
[_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, note_activity.data["object"]["id"]))
|
||||
object = Object.normalize(note_activity)
|
||||
[_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, object.data["id"]))
|
||||
|
||||
conn
|
||||
|> get("/objects/#{uuid}")
|
||||
|
|
@ -131,8 +134,8 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
|
|||
|
||||
test "404s on deleted objects", %{conn: conn} do
|
||||
note_activity = insert(:note_activity)
|
||||
[_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, note_activity.data["object"]["id"]))
|
||||
object = Object.get_by_ap_id(note_activity.data["object"]["id"])
|
||||
object = Object.normalize(note_activity)
|
||||
[_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, object.data["id"]))
|
||||
|
||||
conn
|
||||
|> put_req_header("accept", "application/xml")
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
test "handle incoming note - GS, Salmon" do
|
||||
incoming = File.read!("test/fixtures/incoming_note_activity.xml")
|
||||
{:ok, [activity]} = OStatus.handle_incoming(incoming)
|
||||
object = Object.normalize(activity.data["object"])
|
||||
object = Object.normalize(activity)
|
||||
|
||||
user = User.get_cached_by_ap_id(activity.data["actor"])
|
||||
assert user.info.note_count == 1
|
||||
|
|
@ -51,7 +51,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
test "handle incoming notes - GS, subscription" do
|
||||
incoming = File.read!("test/fixtures/ostatus_incoming_post.xml")
|
||||
{:ok, [activity]} = OStatus.handle_incoming(incoming)
|
||||
object = Object.normalize(activity.data["object"])
|
||||
object = Object.normalize(activity)
|
||||
|
||||
assert activity.data["type"] == "Create"
|
||||
assert object.data["type"] == "Note"
|
||||
|
|
@ -65,7 +65,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
test "handle incoming notes with attachments - GS, subscription" do
|
||||
incoming = File.read!("test/fixtures/incoming_websub_gnusocial_attachments.xml")
|
||||
{:ok, [activity]} = OStatus.handle_incoming(incoming)
|
||||
object = Object.normalize(activity.data["object"])
|
||||
object = Object.normalize(activity)
|
||||
|
||||
assert activity.data["type"] == "Create"
|
||||
assert object.data["type"] == "Note"
|
||||
|
|
@ -78,7 +78,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
test "handle incoming notes with tags" do
|
||||
incoming = File.read!("test/fixtures/ostatus_incoming_post_tag.xml")
|
||||
{:ok, [activity]} = OStatus.handle_incoming(incoming)
|
||||
object = Object.normalize(activity.data["object"])
|
||||
object = Object.normalize(activity)
|
||||
|
||||
assert object.data["tag"] == ["nsfw"]
|
||||
assert "https://www.w3.org/ns/activitystreams#Public" in activity.data["to"]
|
||||
|
|
@ -95,7 +95,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
|
||||
incoming = File.read!("test/fixtures/incoming_reply_mastodon.xml")
|
||||
{:ok, [activity]} = OStatus.handle_incoming(incoming)
|
||||
object = Object.normalize(activity.data["object"])
|
||||
object = Object.normalize(activity)
|
||||
|
||||
assert activity.data["type"] == "Create"
|
||||
assert object.data["type"] == "Note"
|
||||
|
|
@ -107,7 +107,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
test "handle incoming notes - Mastodon, with CW" do
|
||||
incoming = File.read!("test/fixtures/mastodon-note-cw.xml")
|
||||
{:ok, [activity]} = OStatus.handle_incoming(incoming)
|
||||
object = Object.normalize(activity.data["object"])
|
||||
object = Object.normalize(activity)
|
||||
|
||||
assert activity.data["type"] == "Create"
|
||||
assert object.data["type"] == "Note"
|
||||
|
|
@ -119,7 +119,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
test "handle incoming unlisted messages, put public into cc" do
|
||||
incoming = File.read!("test/fixtures/mastodon-note-unlisted.xml")
|
||||
{:ok, [activity]} = OStatus.handle_incoming(incoming)
|
||||
object = Object.normalize(activity.data["object"])
|
||||
object = Object.normalize(activity)
|
||||
|
||||
refute "https://www.w3.org/ns/activitystreams#Public" in activity.data["to"]
|
||||
assert "https://www.w3.org/ns/activitystreams#Public" in activity.data["cc"]
|
||||
|
|
@ -130,7 +130,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
test "handle incoming retweets - Mastodon, with CW" do
|
||||
incoming = File.read!("test/fixtures/cw_retweet.xml")
|
||||
{:ok, [[_activity, retweeted_activity]]} = OStatus.handle_incoming(incoming)
|
||||
retweeted_object = Object.normalize(retweeted_activity.data["object"])
|
||||
retweeted_object = Object.normalize(retweeted_activity)
|
||||
|
||||
assert retweeted_object.data["summary"] == "Hey."
|
||||
end
|
||||
|
|
@ -138,7 +138,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
test "handle incoming notes - GS, subscription, reply" do
|
||||
incoming = File.read!("test/fixtures/ostatus_incoming_reply.xml")
|
||||
{:ok, [activity]} = OStatus.handle_incoming(incoming)
|
||||
object = Object.normalize(activity.data["object"])
|
||||
object = Object.normalize(activity)
|
||||
|
||||
assert activity.data["type"] == "Create"
|
||||
assert object.data["type"] == "Note"
|
||||
|
|
@ -164,7 +164,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
refute activity.local
|
||||
|
||||
retweeted_activity = Activity.get_by_id(retweeted_activity.id)
|
||||
retweeted_object = Object.normalize(retweeted_activity.data["object"])
|
||||
retweeted_object = Object.normalize(retweeted_activity)
|
||||
assert retweeted_activity.data["type"] == "Create"
|
||||
assert retweeted_activity.data["actor"] == "https://pleroma.soykaf.com/users/lain"
|
||||
refute retweeted_activity.local
|
||||
|
|
@ -176,18 +176,19 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
test "handle incoming retweets - GS, subscription - local message" do
|
||||
incoming = File.read!("test/fixtures/share-gs-local.xml")
|
||||
note_activity = insert(:note_activity)
|
||||
object = Object.normalize(note_activity)
|
||||
user = User.get_cached_by_ap_id(note_activity.data["actor"])
|
||||
|
||||
incoming =
|
||||
incoming
|
||||
|> String.replace("LOCAL_ID", note_activity.data["object"]["id"])
|
||||
|> String.replace("LOCAL_ID", object.data["id"])
|
||||
|> String.replace("LOCAL_USER", user.ap_id)
|
||||
|
||||
{:ok, [[activity, retweeted_activity]]} = OStatus.handle_incoming(incoming)
|
||||
|
||||
assert activity.data["type"] == "Announce"
|
||||
assert activity.data["actor"] == "https://social.heldscal.la/user/23211"
|
||||
assert activity.data["object"] == retweeted_activity.data["object"]["id"]
|
||||
assert activity.data["object"] == object.data["id"]
|
||||
assert user.ap_id in activity.data["to"]
|
||||
refute activity.local
|
||||
|
||||
|
|
@ -202,7 +203,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
test "handle incoming retweets - Mastodon, salmon" do
|
||||
incoming = File.read!("test/fixtures/share.xml")
|
||||
{:ok, [[activity, retweeted_activity]]} = OStatus.handle_incoming(incoming)
|
||||
retweeted_object = Object.normalize(retweeted_activity.data["object"])
|
||||
retweeted_object = Object.normalize(retweeted_activity)
|
||||
|
||||
assert activity.data["type"] == "Announce"
|
||||
assert activity.data["actor"] == "https://mastodon.social/users/lambadalambda"
|
||||
|
|
@ -251,16 +252,17 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
|
||||
test "handle incoming favorites with locally available object - GS, websub" do
|
||||
note_activity = insert(:note_activity)
|
||||
object = Object.normalize(note_activity)
|
||||
|
||||
incoming =
|
||||
File.read!("test/fixtures/favorite_with_local_note.xml")
|
||||
|> String.replace("localid", note_activity.data["object"]["id"])
|
||||
|> String.replace("localid", object.data["id"])
|
||||
|
||||
{:ok, [[activity, favorited_activity]]} = OStatus.handle_incoming(incoming)
|
||||
|
||||
assert activity.data["type"] == "Like"
|
||||
assert activity.data["actor"] == "https://social.heldscal.la/user/23211"
|
||||
assert activity.data["object"] == favorited_activity.data["object"]["id"]
|
||||
assert activity.data["object"] == object.data["id"]
|
||||
refute activity.local
|
||||
assert note_activity.id == favorited_activity.id
|
||||
assert favorited_activity.local
|
||||
|
|
@ -269,7 +271,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
test "handle incoming replies" do
|
||||
incoming = File.read!("test/fixtures/incoming_note_activity_answer.xml")
|
||||
{:ok, [activity]} = OStatus.handle_incoming(incoming)
|
||||
object = Object.normalize(activity.data["object"])
|
||||
object = Object.normalize(activity)
|
||||
|
||||
assert activity.data["type"] == "Create"
|
||||
assert object.data["type"] == "Note"
|
||||
|
|
@ -315,13 +317,14 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
"undo:tag:social.heldscal.la,2017-05-07:subscription:23211:person:44803:2017-05-07T09:54:48+00:00"
|
||||
|
||||
assert activity.data["actor"] == "https://social.heldscal.la/user/23211"
|
||||
assert is_map(activity.data["object"])
|
||||
assert activity.data["object"]["type"] == "Follow"
|
||||
assert activity.data["object"]["object"] == "https://pawoo.net/users/pekorino"
|
||||
embedded_object = activity.data["object"]
|
||||
assert is_map(embedded_object)
|
||||
assert embedded_object["type"] == "Follow"
|
||||
assert embedded_object["object"] == "https://pawoo.net/users/pekorino"
|
||||
refute activity.local
|
||||
|
||||
follower = User.get_cached_by_ap_id(activity.data["actor"])
|
||||
followed = User.get_cached_by_ap_id(activity.data["object"]["object"])
|
||||
followed = User.get_cached_by_ap_id(embedded_object["object"])
|
||||
|
||||
refute User.following?(follower, followed)
|
||||
end
|
||||
|
|
@ -538,8 +541,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
|
||||
test "Article objects are not representable" do
|
||||
note_activity = insert(:note_activity)
|
||||
|
||||
note_object = Object.normalize(note_activity.data["object"])
|
||||
note_object = Object.normalize(note_activity)
|
||||
|
||||
note_data =
|
||||
note_object.data
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue