|
|
@@ -325,87 +325,6 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do |
|
|
|
assert object_data["cc"] == to |
|
|
|
end |
|
|
|
|
|
|
|
test "it works for incoming emoji reaction undos" do |
|
|
|
user = insert(:user) |
|
|
|
|
|
|
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) |
|
|
|
{:ok, reaction_activity} = CommonAPI.react_with_emoji(activity.id, user, "👌") |
|
|
|
|
|
|
|
data = |
|
|
|
File.read!("test/fixtures/mastodon-undo-like.json") |
|
|
|
|> Poison.decode!() |
|
|
|
|> Map.put("object", reaction_activity.data["id"]) |
|
|
|
|> Map.put("actor", user.ap_id) |
|
|
|
|
|
|
|
{:ok, activity} = Transmogrifier.handle_incoming(data) |
|
|
|
|
|
|
|
assert activity.actor == user.ap_id |
|
|
|
assert activity.data["id"] == data["id"] |
|
|
|
assert activity.data["type"] == "Undo" |
|
|
|
end |
|
|
|
|
|
|
|
test "it returns an error for incoming unlikes wihout a like activity" do |
|
|
|
user = insert(:user) |
|
|
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "leave a like pls"}) |
|
|
|
|
|
|
|
data = |
|
|
|
File.read!("test/fixtures/mastodon-undo-like.json") |
|
|
|
|> Poison.decode!() |
|
|
|
|> Map.put("object", activity.data["object"]) |
|
|
|
|
|
|
|
assert Transmogrifier.handle_incoming(data) == :error |
|
|
|
end |
|
|
|
|
|
|
|
test "it works for incoming unlikes with an existing like activity" do |
|
|
|
user = insert(:user) |
|
|
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "leave a like pls"}) |
|
|
|
|
|
|
|
like_data = |
|
|
|
File.read!("test/fixtures/mastodon-like.json") |
|
|
|
|> Poison.decode!() |
|
|
|
|> Map.put("object", activity.data["object"]) |
|
|
|
|
|
|
|
{:ok, %Activity{data: like_data, local: false}} = Transmogrifier.handle_incoming(like_data) |
|
|
|
|
|
|
|
data = |
|
|
|
File.read!("test/fixtures/mastodon-undo-like.json") |
|
|
|
|> Poison.decode!() |
|
|
|
|> Map.put("object", like_data) |
|
|
|
|> Map.put("actor", like_data["actor"]) |
|
|
|
|
|
|
|
{:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) |
|
|
|
|
|
|
|
assert data["actor"] == "http://mastodon.example.org/users/admin" |
|
|
|
assert data["type"] == "Undo" |
|
|
|
assert data["id"] == "http://mastodon.example.org/users/admin#likes/2/undo" |
|
|
|
assert data["object"] == "http://mastodon.example.org/users/admin#likes/2" |
|
|
|
end |
|
|
|
|
|
|
|
test "it works for incoming unlikes with an existing like activity and a compact object" do |
|
|
|
user = insert(:user) |
|
|
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "leave a like pls"}) |
|
|
|
|
|
|
|
like_data = |
|
|
|
File.read!("test/fixtures/mastodon-like.json") |
|
|
|
|> Poison.decode!() |
|
|
|
|> Map.put("object", activity.data["object"]) |
|
|
|
|
|
|
|
{:ok, %Activity{data: like_data, local: false}} = Transmogrifier.handle_incoming(like_data) |
|
|
|
|
|
|
|
data = |
|
|
|
File.read!("test/fixtures/mastodon-undo-like.json") |
|
|
|
|> Poison.decode!() |
|
|
|
|> Map.put("object", like_data["id"]) |
|
|
|
|> Map.put("actor", like_data["actor"]) |
|
|
|
|
|
|
|
{:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) |
|
|
|
|
|
|
|
assert data["actor"] == "http://mastodon.example.org/users/admin" |
|
|
|
assert data["type"] == "Undo" |
|
|
|
assert data["id"] == "http://mastodon.example.org/users/admin#likes/2/undo" |
|
|
|
assert data["object"] == "http://mastodon.example.org/users/admin#likes/2" |
|
|
|
end |
|
|
|
|
|
|
|
test "it works for incoming emoji reactions" do |
|
|
|
user = insert(:user) |
|
|
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) |
|
|
|