diff options
| author | lain <lain@soykaf.club> | 2020-07-27 16:35:47 +0000 |
|---|---|---|
| committer | lain <lain@soykaf.club> | 2020-07-27 16:35:47 +0000 |
| commit | e1a1c8e7de5e10fa64d168dc5d35a80b96767395 (patch) | |
| tree | c0057448e323c730bea2c76cecf9efb85ef14181 /test/web/activity_pub/transmogrifier/block_handling_test.exs | |
| parent | 4a6389316dac53c1ca2ec36d160690476d881185 (diff) | |
| parent | 2a3abfd326f0cbb588dfe66a23e9783be3038a5e (diff) | |
| download | pleroma-e1a1c8e7de5e10fa64d168dc5d35a80b96767395.tar.gz pleroma-e1a1c8e7de5e10fa64d168dc5d35a80b96767395.zip | |
Merge branch 'develop' into 'cleanup/masto_fe-default_settings'
# Conflicts:
# lib/pleroma/web/views/masto_fe_view.ex
Diffstat (limited to 'test/web/activity_pub/transmogrifier/block_handling_test.exs')
| -rw-r--r-- | test/web/activity_pub/transmogrifier/block_handling_test.exs | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/test/web/activity_pub/transmogrifier/block_handling_test.exs b/test/web/activity_pub/transmogrifier/block_handling_test.exs new file mode 100644 index 000000000..71f1a0ed5 --- /dev/null +++ b/test/web/activity_pub/transmogrifier/block_handling_test.exs @@ -0,0 +1,63 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.Transmogrifier.BlockHandlingTest do + use Pleroma.DataCase + + alias Pleroma.Activity + alias Pleroma.User + alias Pleroma.Web.ActivityPub.Transmogrifier + + import Pleroma.Factory + + test "it works for incoming blocks" do + user = insert(:user) + + data = + File.read!("test/fixtures/mastodon-block-activity.json") + |> Poison.decode!() + |> Map.put("object", user.ap_id) + + blocker = insert(:user, ap_id: data["actor"]) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["type"] == "Block" + assert data["object"] == user.ap_id + assert data["actor"] == "http://mastodon.example.org/users/admin" + + assert User.blocks?(blocker, user) + end + + test "incoming blocks successfully tear down any follow relationship" do + blocker = insert(:user) + blocked = insert(:user) + + data = + File.read!("test/fixtures/mastodon-block-activity.json") + |> Poison.decode!() + |> Map.put("object", blocked.ap_id) + |> Map.put("actor", blocker.ap_id) + + {:ok, blocker} = User.follow(blocker, blocked) + {:ok, blocked} = User.follow(blocked, blocker) + + assert User.following?(blocker, blocked) + assert User.following?(blocked, blocker) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["type"] == "Block" + assert data["object"] == blocked.ap_id + assert data["actor"] == blocker.ap_id + + blocker = User.get_cached_by_ap_id(data["actor"]) + blocked = User.get_cached_by_ap_id(data["object"]) + + assert User.blocks?(blocker, blocked) + + refute User.following?(blocker, blocked) + refute User.following?(blocked, blocker) + end +end |
