diff options
Diffstat (limited to 'test/web/activity_pub/activity_pub_test.exs')
-rw-r--r-- | test/web/activity_pub/activity_pub_test.exs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index d336fad95..a39ba9adb 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -302,6 +302,38 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do end end + describe "unannouncing an object" do + test "unannouncing a previously announced object" do + note_activity = insert(:note_activity) + object = Object.get_by_ap_id(note_activity.data["object"]["id"]) + user = insert(:user) + + # Unannouncing an object that is not announced does nothing + # {:ok, object} = ActivityPub.unannounce(user, object) + # assert object.data["announcement_count"] == 0 + + {:ok, announce_activity, object} = ActivityPub.announce(user, object) + assert object.data["announcement_count"] == 1 + + {:ok, unannounce_activity, activity, object} = ActivityPub.unannounce(user, object) + assert object.data["announcement_count"] == 0 + + assert activity == announce_activity + + assert unannounce_activity.data["to"] == [ + User.ap_followers(user), + announce_activity.data["actor"] + ] + + assert unannounce_activity.data["type"] == "Undo" + assert unannounce_activity.data["object"] == announce_activity.data + assert unannounce_activity.data["actor"] == user.ap_id + assert unannounce_activity.data["context"] == announce_activity.data["context"] + + assert Repo.get(Activity, announce_activity.id) == nil + end + end + describe "uploading files" do test "copies the file to the configured folder" do file = %Plug.Upload{ |