merge develop
[akkoma] / test / web / ostatus / incoming_documents / delete_handling_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.OStatus.DeleteHandlingTest do
6 use Pleroma.DataCase
7
8 import Pleroma.Factory
9 import Tesla.Mock
10
11 alias Pleroma.Activity
12 alias Pleroma.Object
13 alias Pleroma.Web.OStatus
14
15 setup do
16 mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
17 :ok
18 end
19
20 describe "deletions" do
21 test "it removes the mentioned activity" do
22 note = insert(:note_activity)
23 second_note = insert(:note_activity)
24 object = Object.normalize(note)
25 second_object = Object.normalize(second_note)
26 user = insert(:user)
27
28 {:ok, like, _object} = Pleroma.Web.ActivityPub.ActivityPub.like(user, object)
29
30 incoming =
31 File.read!("test/fixtures/delete.xml")
32 |> String.replace(
33 "tag:mastodon.sdf.org,2017-06-10:objectId=310513:objectType=Status",
34 object.data["id"]
35 )
36
37 {:ok, [delete]} = OStatus.handle_incoming(incoming)
38
39 refute Activity.get_by_id(note.id)
40 refute Activity.get_by_id(like.id)
41 assert Object.get_by_ap_id(object.data["id"]).data["type"] == "Tombstone"
42 assert Activity.get_by_id(second_note.id)
43 assert Object.get_by_ap_id(second_object.data["id"])
44
45 assert delete.data["type"] == "Delete"
46 end
47 end
48 end