X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fweb%2Factivity_pub%2Ftransmogrifier_test.exs;h=4fd6c8b00298aaab70267a9694110f7ddb34a85b;hb=218a22c9a36ff2f8de353110f0badfc1ec5aa0f2;hp=a315ff42d460b6b7afb5f1513036007a3fba13d7;hpb=8b2457bdbf8791923701b0b015f6ddf2e7c89bf7;p=akkoma diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index a315ff42d..4fd6c8b00 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -685,82 +685,29 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do assert user.locked == true end - test "it works for incoming deletes" do - activity = insert(:note_activity) - deleting_user = insert(:user) - - data = - File.read!("test/fixtures/mastodon-delete.json") - |> Poison.decode!() - - object = - data["object"] - |> Map.put("id", activity.data["object"]) - - data = - data - |> Map.put("object", object) - |> Map.put("actor", deleting_user.ap_id) - - {:ok, %Activity{actor: actor, local: false, data: %{"id" => id}}} = - Transmogrifier.handle_incoming(data) - - assert id == data["id"] - refute Activity.get_by_id(activity.id) - assert actor == deleting_user.ap_id - end - - test "it fails for incoming deletes with spoofed origin" do - activity = insert(:note_activity) + test "it works for incomming unfollows with an existing follow" do + user = insert(:user) - data = - File.read!("test/fixtures/mastodon-delete.json") + follow_data = + File.read!("test/fixtures/mastodon-follow-activity.json") |> Poison.decode!() + |> Map.put("object", user.ap_id) - object = - data["object"] - |> Map.put("id", activity.data["object"]) - - data = - data - |> Map.put("object", object) - - assert capture_log(fn -> - :error = Transmogrifier.handle_incoming(data) - end) =~ - "[error] Could not decode user at fetch http://mastodon.example.org/users/gargron, {:error, :nxdomain}" - - assert Activity.get_by_id(activity.id) - end - - @tag capture_log: true - test "it works for incoming user deletes" do - %{ap_id: ap_id} = - insert(:user, ap_id: "http://mastodon.example.org/users/admin", local: false) + {:ok, %Activity{data: _, local: false}} = Transmogrifier.handle_incoming(follow_data) data = - File.read!("test/fixtures/mastodon-delete-user.json") + File.read!("test/fixtures/mastodon-unfollow-activity.json") |> Poison.decode!() + |> Map.put("object", follow_data) - {:ok, _} = Transmogrifier.handle_incoming(data) - ObanHelpers.perform_all() - - refute User.get_cached_by_ap_id(ap_id) - end - - test "it fails for incoming user deletes with spoofed origin" do - %{ap_id: ap_id} = insert(:user) - - data = - File.read!("test/fixtures/mastodon-delete-user.json") - |> Poison.decode!() - |> Map.put("actor", ap_id) + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - assert capture_log(fn -> - assert :error == Transmogrifier.handle_incoming(data) - end) =~ "Object containment failed" + assert data["type"] == "Undo" + assert data["object"]["type"] == "Follow" + assert data["object"]["object"] == user.ap_id + assert data["actor"] == "http://mastodon.example.org/users/admin" - assert User.get_cached_by_ap_id(ap_id) + refute User.following?(User.get_cached_by_ap_id(data["actor"]), user) end test "it works for incoming follows to locked account" do