diff options
author | lambda <pleromagit@rogerbraun.net> | 2018-05-13 09:32:29 +0000 |
---|---|---|
committer | lambda <pleromagit@rogerbraun.net> | 2018-05-13 09:32:29 +0000 |
commit | aeff2d647483d5348cc1da5c901ce55f1c02b733 (patch) | |
tree | 7b7db3e9a7e90771fc6f0283605ac390f2bddb45 /test/web/activity_pub | |
parent | 7e9f14bf3ca95fda9042e10b44b80d8441fa3c42 (diff) | |
parent | 54ccbd8479a77f613e8efd9568b3611c28d21742 (diff) | |
download | pleroma-aeff2d647483d5348cc1da5c901ce55f1c02b733.tar.gz pleroma-aeff2d647483d5348cc1da5c901ce55f1c02b733.zip |
Merge branch 'feature/unrepeats' into 'develop'
Add unrepeats
Closes #69
See merge request pleroma/pleroma!113
Diffstat (limited to 'test/web/activity_pub')
-rw-r--r-- | test/web/activity_pub/activity_pub_test.exs | 32 | ||||
-rw-r--r-- | test/web/activity_pub/transmogrifier_test.exs | 28 |
2 files changed, 60 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{ diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index eb093262f..a3408da9d 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -232,6 +232,34 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do refute Repo.get(Activity, activity.id) end + + test "it works for incoming unannounces with an existing notice" do + user = insert(:user) + {:ok, activity} = CommonAPI.post(user, %{"status" => "hey"}) + + announce_data = + File.read!("test/fixtures/mastodon-announce.json") + |> Poison.decode!() + |> Map.put("object", activity.data["object"]["id"]) + + {:ok, %Activity{data: announce_data, local: false}} = + Transmogrifier.handle_incoming(announce_data) + + data = + File.read!("test/fixtures/mastodon-undo-announce.json") + |> Poison.decode!() + |> Map.put("object", announce_data) + |> Map.put("actor", announce_data["actor"]) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["type"] == "Undo" + assert data["object"]["type"] == "Announce" + assert data["object"]["object"] == activity.data["object"]["id"] + + assert data["object"]["id"] == + "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" + end end describe "prepare outgoing" do |