defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
use Pleroma.DataCase
alias Pleroma.Web.ActivityPub.Transmogrifier
+ alias Pleroma.Web.OStatus
alias Pleroma.Activity
alias Pleroma.User
alias Pleroma.Repo
assert user.info["banner"]["url"] == [%{"href" => "https://cd.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png"}]
assert user.bio == "<p>Some bio</p>"
end
+
+ test "it works for incoming deletes" do
+ activity = insert(:note_activity)
+ data = File.read!("test/fixtures/mastodon-delete.json")
+ |> Poison.decode!
+
+ object = data["object"]
+ |> Map.put("id", activity.data["object"]["id"])
+
+ data = data
+ |> Map.put("object", object)
+ |> Map.put("actor", activity.data["actor"])
+
+ {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data)
+
+ refute Repo.get(Activity, activity.id)
+ end
end
describe "prepare outgoing" do
assert modified["object"]["actor"] == modified["object"]["attributedTo"]
end
+
+ test "it translates ostatus IDs to external URLs" do
+ incoming = File.read!("test/fixtures/incoming_note_activity.xml")
+ {:ok, [referent_activity]} = OStatus.handle_incoming(incoming)
+
+ user = insert(:user)
+
+ {:ok, activity, _} = CommonAPI.favorite(referent_activity.id, user)
+ {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data)
+
+ assert modified["object"] == "http://gs.example.org:4040/index.php/notice/29"
+ end
+
+ test "it translates ostatus reply_to IDs to external URLs" do
+ incoming = File.read!("test/fixtures/incoming_note_activity.xml")
+ {:ok, [referred_activity]} = OStatus.handle_incoming(incoming)
+
+ user = insert(:user)
+
+ {:ok, activity} = CommonAPI.post(user, %{"status" => "HI!", "in_reply_to_status_id" => referred_activity.id})
+ {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data)
+
+ assert modified["object"]["inReplyTo"] == "http://gs.example.org:4040/index.php/notice/29"
+ end
end
describe "user upgrade" do
refute Repo.get(WebsubClientSubscription, ws.id)
assert Repo.get(WebsubClientSubscription, ws2.id)
end
-
- test "it deletes all websub server subscriptions with the server as callback" do
- subscription = %WebsubClientSubscription{topic: "https://niu.moe/users/rye.atom"}
- {:ok, ws} = Repo.insert(subscription)
-
- subscription = %WebsubClientSubscription{topic: "https://niu.moe/users/pasty.atom"}
- {:ok, ws2} = Repo.insert(subscription)
-
- Transmogrifier.maybe_retire_websub("https://niu.moe/users/rye")
-
- refute Repo.get(WebsubClientSubscription, ws.id)
- assert Repo.get(WebsubClientSubscription, ws2.id)
- end
end
end