From cc5373b846d7f816a3e78af342468f2ea8415b8d Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Mon, 21 May 2018 05:00:58 -0400 Subject: [PATCH] Fix unblock handling --- lib/pleroma/web/activity_pub/transmogrifier.ex | 1 + test/fixtures/mastodon-unblock-activity.json | 5 +++-- test/web/activity_pub/transmogrifier_test.exs | 8 ++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 24e876efb..b941fdf16 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -270,6 +270,7 @@ def handle_incoming( with %User{local: true} = blocked <- User.get_cached_by_ap_id(blocked), %User{} = blocker <- User.get_or_fetch_by_ap_id(blocker), {:ok, activity} <- ActivityPub.unblock(blocker, blocked, id, false) do + User.unblock(blocker, blocked) {:ok, activity} else e -> :error diff --git a/test/fixtures/mastodon-unblock-activity.json b/test/fixtures/mastodon-unblock-activity.json index 53b2f42a8..f4a2d30dd 100644 --- a/test/fixtures/mastodon-unblock-activity.json +++ b/test/fixtures/mastodon-unblock-activity.json @@ -26,8 +26,9 @@ "type": "Block", "object": "http://localtesting.pleroma.lol/users/lain", "nickname": "lain", - "id": "http://mastodon.example.org/users/admin#follows/2", + "id": "http://mastodon.example.org/users/admin#blocks/2", "actor": "http://mastodon.example.org/users/admin" }, - "actor": "http://mastodon.example.org/users/admin" + "actor": "http://mastodon.example.org/users/admin", + "id": "http://mastodon.example.org/users/admin#blocks/2/undo" } diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index da55909bc..cf6b1d0b5 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -316,7 +316,7 @@ test "it works for incoming unannounces with an existing notice" do "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" end - test "it works for incomming unfollows" do + test "it works for incomming unfollows with an existing follow" do user = insert(:user) follow_data = @@ -360,7 +360,7 @@ test "it works for incoming blocks" do assert User.blocks?(blocker, user) end - test "it works for incoming unblocks" do + test "it works for incoming unblocks with an existing block" do user = insert(:user) block_data = @@ -379,11 +379,11 @@ test "it works for incoming unblocks" do assert data["type"] == "Undo" assert data["object"]["type"] == "Block" assert data["object"]["object"] == user.ap_id - assert data["actor"] == "https://mastodon.example.org/users/admin" + assert data["actor"] == "http://mastodon.example.org/users/admin" blocker = User.get_by_ap_id(data["actor"]) - refute User.blocks?(blocker, user.ap_id) + refute User.blocks?(blocker, user) end end