diff options
Diffstat (limited to 'test/web/activity_pub')
| -rw-r--r-- | test/web/activity_pub/activity_pub_controller_test.exs | 2 | ||||
| -rw-r--r-- | test/web/activity_pub/activity_pub_test.exs | 280 | ||||
| -rw-r--r-- | test/web/activity_pub/object_validator_test.exs | 8 | ||||
| -rw-r--r-- | test/web/activity_pub/side_effects_test.exs | 53 | ||||
| -rw-r--r-- | test/web/activity_pub/transmogrifier/delete_handling_test.exs | 28 | ||||
| -rw-r--r-- | test/web/activity_pub/transmogrifier/emoji_react_handling_test.exs | 4 | ||||
| -rw-r--r-- | test/web/activity_pub/transmogrifier/like_handling_test.exs | 6 | ||||
| -rw-r--r-- | test/web/activity_pub/transmogrifier/undo_handling_test.exs | 10 | ||||
| -rw-r--r-- | test/web/activity_pub/transmogrifier_test.exs | 93 | ||||
| -rw-r--r-- | test/web/activity_pub/utils_test.exs | 26 | ||||
| -rw-r--r-- | test/web/activity_pub/views/object_view_test.exs | 2 | ||||
| -rw-r--r-- | test/web/activity_pub/views/user_view_test.exs | 2 | ||||
| -rw-r--r-- | test/web/activity_pub/visibilty_test.exs | 12 | 
13 files changed, 316 insertions, 210 deletions
diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs index 776ddc8d4..c432c90e3 100644 --- a/test/web/activity_pub/activity_pub_controller_test.exs +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -341,7 +341,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do      test "cached purged after activity deletion", %{conn: conn} do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "cofe"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "cofe"})        uuid = String.split(activity.data["id"], "/") |> List.last() diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index 0739cbfef..56fde97e7 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -32,7 +32,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do    describe "streaming out participations" do      test "it streams them out" do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "direct"}) +      {:ok, activity} = CommonAPI.post(user, %{status: ".", visibility: "direct"})        {:ok, conversation} = Pleroma.Conversation.create_or_bump_for(activity) @@ -56,8 +56,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do          stream: fn _, _ -> nil end do          {:ok, activity} =            CommonAPI.post(user_one, %{ -            "status" => "@#{user_two.nickname}", -            "visibility" => "direct" +            status: "@#{user_two.nickname}", +            visibility: "direct"            })          conversation = @@ -74,15 +74,13 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      test "it restricts by the appropriate visibility" do        user = insert(:user) -      {:ok, public_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "public"}) +      {:ok, public_activity} = CommonAPI.post(user, %{status: ".", visibility: "public"}) -      {:ok, direct_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "direct"}) +      {:ok, direct_activity} = CommonAPI.post(user, %{status: ".", visibility: "direct"}) -      {:ok, unlisted_activity} = -        CommonAPI.post(user, %{"status" => ".", "visibility" => "unlisted"}) +      {:ok, unlisted_activity} = CommonAPI.post(user, %{status: ".", visibility: "unlisted"}) -      {:ok, private_activity} = -        CommonAPI.post(user, %{"status" => ".", "visibility" => "private"}) +      {:ok, private_activity} = CommonAPI.post(user, %{status: ".", visibility: "private"})        activities =          ActivityPub.fetch_activities([], %{:visibility => "direct", "actor_id" => user.ap_id}) @@ -118,15 +116,13 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      test "it excludes by the appropriate visibility" do        user = insert(:user) -      {:ok, public_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "public"}) +      {:ok, public_activity} = CommonAPI.post(user, %{status: ".", visibility: "public"}) -      {:ok, direct_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "direct"}) +      {:ok, direct_activity} = CommonAPI.post(user, %{status: ".", visibility: "direct"}) -      {:ok, unlisted_activity} = -        CommonAPI.post(user, %{"status" => ".", "visibility" => "unlisted"}) +      {:ok, unlisted_activity} = CommonAPI.post(user, %{status: ".", visibility: "unlisted"}) -      {:ok, private_activity} = -        CommonAPI.post(user, %{"status" => ".", "visibility" => "private"}) +      {:ok, private_activity} = CommonAPI.post(user, %{status: ".", visibility: "private"})        activities =          ActivityPub.fetch_activities([], %{ @@ -193,9 +189,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      test "it fetches the appropriate tag-restricted posts" do        user = insert(:user) -      {:ok, status_one} = CommonAPI.post(user, %{"status" => ". #test"}) -      {:ok, status_two} = CommonAPI.post(user, %{"status" => ". #essais"}) -      {:ok, status_three} = CommonAPI.post(user, %{"status" => ". #test #reject"}) +      {:ok, status_one} = CommonAPI.post(user, %{status: ". #test"}) +      {:ok, status_two} = CommonAPI.post(user, %{status: ". #essais"}) +      {:ok, status_three} = CommonAPI.post(user, %{status: ". #test #reject"})        fetch_one = ActivityPub.fetch_activities([], %{"type" => "Create", "tag" => "test"}) @@ -432,26 +428,26 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        {:ok, _} =          CommonAPI.post(User.get_cached_by_id(user.id), %{ -          "status" => "1", -          "visibility" => "public" +          status: "1", +          visibility: "public"          })        {:ok, _} =          CommonAPI.post(User.get_cached_by_id(user.id), %{ -          "status" => "2", -          "visibility" => "unlisted" +          status: "2", +          visibility: "unlisted"          })        {:ok, _} =          CommonAPI.post(User.get_cached_by_id(user.id), %{ -          "status" => "2", -          "visibility" => "private" +          status: "2", +          visibility: "private"          })        {:ok, _} =          CommonAPI.post(User.get_cached_by_id(user.id), %{ -          "status" => "3", -          "visibility" => "direct" +          status: "3", +          visibility: "direct"          })        user = User.get_cached_by_id(user.id) @@ -462,27 +458,27 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        user = insert(:user)        user2 = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "1", "visibility" => "public"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "1", visibility: "public"})        ap_id = activity.data["id"] -      reply_data = %{"status" => "1", "in_reply_to_status_id" => activity.id} +      reply_data = %{status: "1", in_reply_to_status_id: activity.id}        # public -      {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, "visibility", "public")) +      {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, :visibility, "public"))        assert %{data: data, object: object} = Activity.get_by_ap_id_with_object(ap_id)        assert object.data["repliesCount"] == 1        # unlisted -      {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, "visibility", "unlisted")) +      {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, :visibility, "unlisted"))        assert %{data: data, object: object} = Activity.get_by_ap_id_with_object(ap_id)        assert object.data["repliesCount"] == 2        # private -      {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, "visibility", "private")) +      {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, :visibility, "private"))        assert %{data: data, object: object} = Activity.get_by_ap_id_with_object(ap_id)        assert object.data["repliesCount"] == 2        # direct -      {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, "visibility", "direct")) +      {:ok, _} = CommonAPI.post(user2, Map.put(reply_data, :visibility, "direct"))        assert %{data: data, object: object} = Activity.get_by_ap_id_with_object(ap_id)        assert object.data["repliesCount"] == 2      end @@ -569,13 +565,13 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      {:ok, _user_relationship} = User.block(blocker, blockee) -    {:ok, activity_one} = CommonAPI.post(friend, %{"status" => "hey!"}) +    {:ok, activity_one} = CommonAPI.post(friend, %{status: "hey!"}) -    {:ok, activity_two} = CommonAPI.post(friend, %{"status" => "hey! @#{blockee.nickname}"}) +    {:ok, activity_two} = CommonAPI.post(friend, %{status: "hey! @#{blockee.nickname}"}) -    {:ok, activity_three} = CommonAPI.post(blockee, %{"status" => "hey! @#{friend.nickname}"}) +    {:ok, activity_three} = CommonAPI.post(blockee, %{status: "hey! @#{friend.nickname}"}) -    {:ok, activity_four} = CommonAPI.post(blockee, %{"status" => "hey! @#{blocker.nickname}"}) +    {:ok, activity_four} = CommonAPI.post(blockee, %{status: "hey! @#{blocker.nickname}"})      activities = ActivityPub.fetch_activities([], %{"blocking_user" => blocker}) @@ -592,9 +588,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      {:ok, _user_relationship} = User.block(blocker, blockee) -    {:ok, activity_one} = CommonAPI.post(friend, %{"status" => "hey!"}) +    {:ok, activity_one} = CommonAPI.post(friend, %{status: "hey!"}) -    {:ok, activity_two} = CommonAPI.post(blockee, %{"status" => "hey! @#{friend.nickname}"}) +    {:ok, activity_two} = CommonAPI.post(blockee, %{status: "hey! @#{friend.nickname}"})      {:ok, activity_three, _} = CommonAPI.repeat(activity_two.id, friend) @@ -774,10 +770,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      test "doesn't retrieve unlisted activities" do        user = insert(:user) -      {:ok, _unlisted_activity} = -        CommonAPI.post(user, %{"status" => "yeah", "visibility" => "unlisted"}) +      {:ok, _unlisted_activity} = CommonAPI.post(user, %{status: "yeah", visibility: "unlisted"}) -      {:ok, listed_activity} = CommonAPI.post(user, %{"status" => "yeah"}) +      {:ok, listed_activity} = CommonAPI.post(user, %{status: "yeah"})        [activity] = ActivityPub.fetch_public_activities() @@ -912,7 +907,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do    describe "announcing a private object" do      test "adds an announce activity to the db if the audience is not widened" do        user = insert(:user) -      {:ok, note_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "private"}) +      {:ok, note_activity} = CommonAPI.post(user, %{status: ".", visibility: "private"})        object = Object.normalize(note_activity)        {:ok, announce_activity, object} = ActivityPub.announce(user, object, nil, true, false) @@ -926,7 +921,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      test "does not add an announce activity to the db if the audience is widened" do        user = insert(:user) -      {:ok, note_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "private"}) +      {:ok, note_activity} = CommonAPI.post(user, %{status: ".", visibility: "private"})        object = Object.normalize(note_activity)        assert {:error, _} = ActivityPub.announce(user, object, nil, true, true) @@ -935,7 +930,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      test "does not add an announce activity to the db if the announcer is not the author" do        user = insert(:user)        announcer = insert(:user) -      {:ok, note_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "private"}) +      {:ok, note_activity} = CommonAPI.post(user, %{status: ".", visibility: "private"})        object = Object.normalize(note_activity)        assert {:error, _} = ActivityPub.announce(announcer, object, nil, true, false) @@ -1061,14 +1056,38 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      end      test "creates a block activity" do +      clear_config([:instance, :federating], true)        blocker = insert(:user)        blocked = insert(:user) -      {:ok, activity} = ActivityPub.block(blocker, blocked) +      with_mock Pleroma.Web.Federator, +        publish: fn _ -> nil end do +        {:ok, activity} = ActivityPub.block(blocker, blocked) -      assert activity.data["type"] == "Block" -      assert activity.data["actor"] == blocker.ap_id -      assert activity.data["object"] == blocked.ap_id +        assert activity.data["type"] == "Block" +        assert activity.data["actor"] == blocker.ap_id +        assert activity.data["object"] == blocked.ap_id + +        assert called(Pleroma.Web.Federator.publish(activity)) +      end +    end + +    test "works with outgoing blocks disabled, but doesn't federate" do +      clear_config([:instance, :federating], true) +      clear_config([:activitypub, :outgoing_blocks], false) +      blocker = insert(:user) +      blocked = insert(:user) + +      with_mock Pleroma.Web.Federator, +        publish: fn _ -> nil end do +        {:ok, activity} = ActivityPub.block(blocker, blocked) + +        assert activity.data["type"] == "Block" +        assert activity.data["actor"] == blocker.ap_id +        assert activity.data["object"] == blocked.ap_id + +        refute called(Pleroma.Web.Federator.publish(:_)) +      end      end    end @@ -1087,23 +1106,22 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        {:ok, user3} = User.follow(user3, user2)        assert User.following?(user3, user2) -      {:ok, public_activity} = CommonAPI.post(user3, %{"status" => "hi 1"}) +      {:ok, public_activity} = CommonAPI.post(user3, %{status: "hi 1"}) -      {:ok, private_activity_1} = -        CommonAPI.post(user3, %{"status" => "hi 2", "visibility" => "private"}) +      {:ok, private_activity_1} = CommonAPI.post(user3, %{status: "hi 2", visibility: "private"})        {:ok, private_activity_2} =          CommonAPI.post(user2, %{ -          "status" => "hi 3", -          "visibility" => "private", -          "in_reply_to_status_id" => private_activity_1.id +          status: "hi 3", +          visibility: "private", +          in_reply_to_status_id: private_activity_1.id          })        {:ok, private_activity_3} =          CommonAPI.post(user3, %{ -          "status" => "hi 4", -          "visibility" => "private", -          "in_reply_to_status_id" => private_activity_2.id +          status: "hi 4", +          visibility: "private", +          in_reply_to_status_id: private_activity_2.id          })        activities = @@ -1153,9 +1171,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      Config.put([:instance, :max_pinned_statuses], 3)      user = insert(:user) -    {:ok, activity_one} = CommonAPI.post(user, %{"status" => "HI!!!"}) -    {:ok, activity_two} = CommonAPI.post(user, %{"status" => "HI!!!"}) -    {:ok, activity_three} = CommonAPI.post(user, %{"status" => "HI!!!"}) +    {:ok, activity_one} = CommonAPI.post(user, %{status: "HI!!!"}) +    {:ok, activity_two} = CommonAPI.post(user, %{status: "HI!!!"}) +    {:ok, activity_three} = CommonAPI.post(user, %{status: "HI!!!"})      CommonAPI.pin(activity_one.id, user)      user = refresh_record(user) @@ -1176,7 +1194,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        reporter = insert(:user)        target_account = insert(:user)        content = "foobar" -      {:ok, activity} = CommonAPI.post(target_account, %{"status" => content}) +      {:ok, activity} = CommonAPI.post(target_account, %{status: content})        context = Utils.generate_context_id()        reporter_ap_id = reporter.ap_id @@ -1272,8 +1290,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      {:ok, list} = Pleroma.List.create("foo", user)      {:ok, list} = Pleroma.List.follow(list, member) -    {:ok, activity} = -      CommonAPI.post(user, %{"status" => "foobar", "visibility" => "list:#{list.id}"}) +    {:ok, activity} = CommonAPI.post(user, %{status: "foobar", visibility: "list:#{list.id}"})      activity = Repo.preload(activity, :bookmark)      activity = %Activity{activity | thread_muted?: !!activity.thread_muted?} @@ -1291,8 +1308,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        {:ok, activity} =          CommonAPI.post(user, %{ -          "status" => "thought I looked cute might delete later :3", -          "visibility" => "private" +          status: "thought I looked cute might delete later :3", +          visibility: "private"          })        [result] = ActivityPub.fetch_activities_bounded([user.follower_address], []) @@ -1301,12 +1318,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      test "fetches only public posts for other users" do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "#cofe", "visibility" => "public"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "#cofe", visibility: "public"})        {:ok, _private_activity} =          CommonAPI.post(user, %{ -          "status" => "why is tenshi eating a corndog so cute?", -          "visibility" => "private" +          status: "why is tenshi eating a corndog so cute?", +          visibility: "private"          })        [result] = ActivityPub.fetch_activities_bounded([], [user.follower_address]) @@ -1434,11 +1451,11 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        other_user = insert(:user)        user1 = insert(:user)        user2 = insert(:user) -      {:ok, a1} = CommonAPI.post(user1, %{"status" => "bla"}) -      {:ok, _a2} = CommonAPI.post(user2, %{"status" => "traps are happy"}) -      {:ok, a3} = CommonAPI.post(user2, %{"status" => "Trees Are "}) -      {:ok, a4} = CommonAPI.post(user2, %{"status" => "Agent Smith "}) -      {:ok, a5} = CommonAPI.post(user1, %{"status" => "Red or Blue "}) +      {:ok, a1} = CommonAPI.post(user1, %{status: "bla"}) +      {:ok, _a2} = CommonAPI.post(user2, %{status: "traps are happy"}) +      {:ok, a3} = CommonAPI.post(user2, %{status: "Trees Are "}) +      {:ok, a4} = CommonAPI.post(user2, %{status: "Agent Smith "}) +      {:ok, a5} = CommonAPI.post(user1, %{status: "Red or Blue "})        {:ok, _} = CommonAPI.favorite(user, a4.id)        {:ok, _} = CommonAPI.favorite(other_user, a3.id) @@ -1518,10 +1535,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do    test "doesn't retrieve replies activities with exclude_replies" do      user = insert(:user) -    {:ok, activity} = CommonAPI.post(user, %{"status" => "yeah"}) +    {:ok, activity} = CommonAPI.post(user, %{status: "yeah"}) -    {:ok, _reply} = -      CommonAPI.post(user, %{"status" => "yeah", "in_reply_to_status_id" => activity.id}) +    {:ok, _reply} = CommonAPI.post(user, %{status: "yeah", in_reply_to_status_id: activity.id})      [result] = ActivityPub.fetch_public_activities(%{"exclude_replies" => "true"}) @@ -1834,84 +1850,84 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      {:ok, u2} = User.follow(u2, u3)      {:ok, u3} = User.follow(u3, u2) -    {:ok, a1} = CommonAPI.post(u1, %{"status" => "Status"}) +    {:ok, a1} = CommonAPI.post(u1, %{status: "Status"})      {:ok, r1_1} =        CommonAPI.post(u2, %{ -        "status" => "@#{u1.nickname} reply from u2 to u1", -        "in_reply_to_status_id" => a1.id +        status: "@#{u1.nickname} reply from u2 to u1", +        in_reply_to_status_id: a1.id        })      {:ok, r1_2} =        CommonAPI.post(u3, %{ -        "status" => "@#{u1.nickname} reply from u3 to u1", -        "in_reply_to_status_id" => a1.id +        status: "@#{u1.nickname} reply from u3 to u1", +        in_reply_to_status_id: a1.id        })      {:ok, r1_3} =        CommonAPI.post(u4, %{ -        "status" => "@#{u1.nickname} reply from u4 to u1", -        "in_reply_to_status_id" => a1.id +        status: "@#{u1.nickname} reply from u4 to u1", +        in_reply_to_status_id: a1.id        }) -    {:ok, a2} = CommonAPI.post(u2, %{"status" => "Status"}) +    {:ok, a2} = CommonAPI.post(u2, %{status: "Status"})      {:ok, r2_1} =        CommonAPI.post(u1, %{ -        "status" => "@#{u2.nickname} reply from u1 to u2", -        "in_reply_to_status_id" => a2.id +        status: "@#{u2.nickname} reply from u1 to u2", +        in_reply_to_status_id: a2.id        })      {:ok, r2_2} =        CommonAPI.post(u3, %{ -        "status" => "@#{u2.nickname} reply from u3 to u2", -        "in_reply_to_status_id" => a2.id +        status: "@#{u2.nickname} reply from u3 to u2", +        in_reply_to_status_id: a2.id        })      {:ok, r2_3} =        CommonAPI.post(u4, %{ -        "status" => "@#{u2.nickname} reply from u4 to u2", -        "in_reply_to_status_id" => a2.id +        status: "@#{u2.nickname} reply from u4 to u2", +        in_reply_to_status_id: a2.id        }) -    {:ok, a3} = CommonAPI.post(u3, %{"status" => "Status"}) +    {:ok, a3} = CommonAPI.post(u3, %{status: "Status"})      {:ok, r3_1} =        CommonAPI.post(u1, %{ -        "status" => "@#{u3.nickname} reply from u1 to u3", -        "in_reply_to_status_id" => a3.id +        status: "@#{u3.nickname} reply from u1 to u3", +        in_reply_to_status_id: a3.id        })      {:ok, r3_2} =        CommonAPI.post(u2, %{ -        "status" => "@#{u3.nickname} reply from u2 to u3", -        "in_reply_to_status_id" => a3.id +        status: "@#{u3.nickname} reply from u2 to u3", +        in_reply_to_status_id: a3.id        })      {:ok, r3_3} =        CommonAPI.post(u4, %{ -        "status" => "@#{u3.nickname} reply from u4 to u3", -        "in_reply_to_status_id" => a3.id +        status: "@#{u3.nickname} reply from u4 to u3", +        in_reply_to_status_id: a3.id        }) -    {:ok, a4} = CommonAPI.post(u4, %{"status" => "Status"}) +    {:ok, a4} = CommonAPI.post(u4, %{status: "Status"})      {:ok, r4_1} =        CommonAPI.post(u1, %{ -        "status" => "@#{u4.nickname} reply from u1 to u4", -        "in_reply_to_status_id" => a4.id +        status: "@#{u4.nickname} reply from u1 to u4", +        in_reply_to_status_id: a4.id        })      {:ok, r4_2} =        CommonAPI.post(u2, %{ -        "status" => "@#{u4.nickname} reply from u2 to u4", -        "in_reply_to_status_id" => a4.id +        status: "@#{u4.nickname} reply from u2 to u4", +        in_reply_to_status_id: a4.id        })      {:ok, r4_3} =        CommonAPI.post(u3, %{ -        "status" => "@#{u4.nickname} reply from u3 to u4", -        "in_reply_to_status_id" => a4.id +        status: "@#{u4.nickname} reply from u3 to u4", +        in_reply_to_status_id: a4.id        })      {:ok, @@ -1935,68 +1951,68 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      {:ok, u2} = User.follow(u2, u3)      {:ok, u3} = User.follow(u3, u2) -    {:ok, a1} = CommonAPI.post(u1, %{"status" => "Status", "visibility" => "private"}) +    {:ok, a1} = CommonAPI.post(u1, %{status: "Status", visibility: "private"})      {:ok, r1_1} =        CommonAPI.post(u2, %{ -        "status" => "@#{u1.nickname} reply from u2 to u1", -        "in_reply_to_status_id" => a1.id, -        "visibility" => "private" +        status: "@#{u1.nickname} reply from u2 to u1", +        in_reply_to_status_id: a1.id, +        visibility: "private"        })      {:ok, r1_2} =        CommonAPI.post(u3, %{ -        "status" => "@#{u1.nickname} reply from u3 to u1", -        "in_reply_to_status_id" => a1.id, -        "visibility" => "private" +        status: "@#{u1.nickname} reply from u3 to u1", +        in_reply_to_status_id: a1.id, +        visibility: "private"        })      {:ok, r1_3} =        CommonAPI.post(u4, %{ -        "status" => "@#{u1.nickname} reply from u4 to u1", -        "in_reply_to_status_id" => a1.id, -        "visibility" => "private" +        status: "@#{u1.nickname} reply from u4 to u1", +        in_reply_to_status_id: a1.id, +        visibility: "private"        }) -    {:ok, a2} = CommonAPI.post(u2, %{"status" => "Status", "visibility" => "private"}) +    {:ok, a2} = CommonAPI.post(u2, %{status: "Status", visibility: "private"})      {:ok, r2_1} =        CommonAPI.post(u1, %{ -        "status" => "@#{u2.nickname} reply from u1 to u2", -        "in_reply_to_status_id" => a2.id, -        "visibility" => "private" +        status: "@#{u2.nickname} reply from u1 to u2", +        in_reply_to_status_id: a2.id, +        visibility: "private"        })      {:ok, r2_2} =        CommonAPI.post(u3, %{ -        "status" => "@#{u2.nickname} reply from u3 to u2", -        "in_reply_to_status_id" => a2.id, -        "visibility" => "private" +        status: "@#{u2.nickname} reply from u3 to u2", +        in_reply_to_status_id: a2.id, +        visibility: "private"        }) -    {:ok, a3} = CommonAPI.post(u3, %{"status" => "Status", "visibility" => "private"}) +    {:ok, a3} = CommonAPI.post(u3, %{status: "Status", visibility: "private"})      {:ok, r3_1} =        CommonAPI.post(u1, %{ -        "status" => "@#{u3.nickname} reply from u1 to u3", -        "in_reply_to_status_id" => a3.id, -        "visibility" => "private" +        status: "@#{u3.nickname} reply from u1 to u3", +        in_reply_to_status_id: a3.id, +        visibility: "private"        })      {:ok, r3_2} =        CommonAPI.post(u2, %{ -        "status" => "@#{u3.nickname} reply from u2 to u3", -        "in_reply_to_status_id" => a3.id, -        "visibility" => "private" +        status: "@#{u3.nickname} reply from u2 to u3", +        in_reply_to_status_id: a3.id, +        visibility: "private"        }) -    {:ok, a4} = CommonAPI.post(u4, %{"status" => "Status", "visibility" => "private"}) +    {:ok, a4} = CommonAPI.post(u4, %{status: "Status", visibility: "private"})      {:ok, r4_1} =        CommonAPI.post(u1, %{ -        "status" => "@#{u4.nickname} reply from u1 to u4", -        "in_reply_to_status_id" => a4.id, -        "visibility" => "private" +        status: "@#{u4.nickname} reply from u1 to u4", +        in_reply_to_status_id: a4.id, +        visibility: "private"        })      {:ok, diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index f382adf3e..96eff1c30 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -13,7 +13,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do    describe "EmojiReacts" do      setup do        user = insert(:user) -      {:ok, post_activity} = CommonAPI.post(user, %{"status" => "uguu"}) +      {:ok, post_activity} = CommonAPI.post(user, %{status: "uguu"})        object = Pleroma.Object.get_by_ap_id(post_activity.data["object"]) @@ -53,7 +53,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do    describe "Undos" do      setup do        user = insert(:user) -      {:ok, post_activity} = CommonAPI.post(user, %{"status" => "uguu"}) +      {:ok, post_activity} = CommonAPI.post(user, %{status: "uguu"})        {:ok, like} = CommonAPI.favorite(user, post_activity.id)        {:ok, valid_like_undo, []} = Builder.undo(user, like) @@ -93,7 +93,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do    describe "deletes" do      setup do        user = insert(:user) -      {:ok, post_activity} = CommonAPI.post(user, %{"status" => "cancel me daddy"}) +      {:ok, post_activity} = CommonAPI.post(user, %{status: "cancel me daddy"})        {:ok, valid_post_delete, _} = Builder.delete(user, post_activity.data["object"])        {:ok, valid_user_delete, _} = Builder.delete(user, user.ap_id) @@ -185,7 +185,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do    describe "likes" do      setup do        user = insert(:user) -      {:ok, post_activity} = CommonAPI.post(user, %{"status" => "uguu"}) +      {:ok, post_activity} = CommonAPI.post(user, %{status: "uguu"})        valid_like = %{          "to" => [user.ap_id], diff --git a/test/web/activity_pub/side_effects_test.exs b/test/web/activity_pub/side_effects_test.exs index b29a7a7be..797f00d08 100644 --- a/test/web/activity_pub/side_effects_test.exs +++ b/test/web/activity_pub/side_effects_test.exs @@ -25,14 +25,24 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do        user = insert(:user)        other_user = insert(:user) -      {:ok, op} = CommonAPI.post(other_user, %{"status" => "big oof"}) -      {:ok, post} = CommonAPI.post(user, %{"status" => "hey", "in_reply_to_id" => op}) +      {:ok, op} = CommonAPI.post(other_user, %{status: "big oof"}) +      {:ok, post} = CommonAPI.post(user, %{status: "hey", in_reply_to_id: op}) +      {:ok, favorite} = CommonAPI.favorite(user, post.id)        object = Object.normalize(post)        {:ok, delete_data, _meta} = Builder.delete(user, object.data["id"])        {:ok, delete_user_data, _meta} = Builder.delete(user, user.ap_id)        {:ok, delete, _meta} = ActivityPub.persist(delete_data, local: true)        {:ok, delete_user, _meta} = ActivityPub.persist(delete_user_data, local: true) -      %{user: user, delete: delete, post: post, object: object, delete_user: delete_user, op: op} + +      %{ +        user: user, +        delete: delete, +        post: post, +        object: object, +        delete_user: delete_user, +        op: op, +        favorite: favorite +      }      end      test "it handles object deletions", %{ @@ -40,6 +50,37 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do        post: post,        object: object,        user: user, +      op: op, +      favorite: favorite +    } do +      with_mock Pleroma.Web.ActivityPub.ActivityPub, [:passthrough], +        stream_out: fn _ -> nil end, +        stream_out_participations: fn _, _ -> nil end do +        {:ok, delete, _} = SideEffects.handle(delete) +        user = User.get_cached_by_ap_id(object.data["actor"]) + +        assert called(Pleroma.Web.ActivityPub.ActivityPub.stream_out(delete)) +        assert called(Pleroma.Web.ActivityPub.ActivityPub.stream_out_participations(object, user)) +      end + +      object = Object.get_by_id(object.id) +      assert object.data["type"] == "Tombstone" +      refute Activity.get_by_id(post.id) +      refute Activity.get_by_id(favorite.id) + +      user = User.get_by_id(user.id) +      assert user.note_count == 0 + +      object = Object.normalize(op.data["object"], false) + +      assert object.data["repliesCount"] == 0 +    end + +    test "it handles object deletions when the object itself has been pruned", %{ +      delete: delete, +      post: post, +      object: object, +      user: user,        op: op      } do        with_mock Pleroma.Web.ActivityPub.ActivityPub, [:passthrough], @@ -77,7 +118,7 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do        poster = insert(:user)        user = insert(:user) -      {:ok, post} = CommonAPI.post(poster, %{"status" => "hey"}) +      {:ok, post} = CommonAPI.post(poster, %{status: "hey"})        {:ok, emoji_react_data, []} = Builder.emoji_react(user, post.object, "👌")        {:ok, emoji_react, _meta} = ActivityPub.persist(emoji_react_data, local: true) @@ -103,7 +144,7 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do      setup do        poster = insert(:user)        user = insert(:user) -      {:ok, post} = CommonAPI.post(poster, %{"status" => "hey"}) +      {:ok, post} = CommonAPI.post(poster, %{status: "hey"})        {:ok, like} = CommonAPI.favorite(user, post.id)        {:ok, reaction} = CommonAPI.react_with_emoji(post.id, user, "👍")        {:ok, announce, _} = CommonAPI.repeat(post.id, user) @@ -203,7 +244,7 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do      setup do        poster = insert(:user)        user = insert(:user) -      {:ok, post} = CommonAPI.post(poster, %{"status" => "hey"}) +      {:ok, post} = CommonAPI.post(poster, %{status: "hey"})        {:ok, like_data, _meta} = Builder.like(user, post.object)        {:ok, like, _meta} = ActivityPub.persist(like_data, local: true) diff --git a/test/web/activity_pub/transmogrifier/delete_handling_test.exs b/test/web/activity_pub/transmogrifier/delete_handling_test.exs index f235a8e63..c9a53918c 100644 --- a/test/web/activity_pub/transmogrifier/delete_handling_test.exs +++ b/test/web/activity_pub/transmogrifier/delete_handling_test.exs @@ -44,6 +44,34 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.DeleteHandlingTest do      assert object.data["type"] == "Tombstone"    end +  test "it works for incoming when the object has been pruned" do +    activity = insert(:note_activity) + +    {:ok, object} = +      Object.normalize(activity.data["object"]) +      |> Repo.delete() + +    Cachex.del(:object_cache, "object:#{object.data["id"]}") + +    deleting_user = insert(:user) + +    data = +      File.read!("test/fixtures/mastodon-delete.json") +      |> Poison.decode!() +      |> Map.put("actor", deleting_user.ap_id) +      |> put_in(["object", "id"], activity.data["object"]) + +    {:ok, %Activity{actor: actor, local: false, data: %{"id" => id}}} = +      Transmogrifier.handle_incoming(data) + +    assert id == data["id"] + +    # We delete the Create activity because we base our timelines on it. +    # This should be changed after we unify objects and activities +    refute Activity.get_by_id(activity.id) +    assert actor == deleting_user.ap_id +  end +    test "it fails for incoming deletes with spoofed origin" do      activity = insert(:note_activity)      %{ap_id: ap_id} = insert(:user, ap_id: "https://gensokyo.2hu/users/raymoo") diff --git a/test/web/activity_pub/transmogrifier/emoji_react_handling_test.exs b/test/web/activity_pub/transmogrifier/emoji_react_handling_test.exs index 6988e3e0a..0fb056b50 100644 --- a/test/web/activity_pub/transmogrifier/emoji_react_handling_test.exs +++ b/test/web/activity_pub/transmogrifier/emoji_react_handling_test.exs @@ -15,7 +15,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.EmojiReactHandlingTest do    test "it works for incoming emoji reactions" do      user = insert(:user)      other_user = insert(:user, local: false) -    {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) +    {:ok, activity} = CommonAPI.post(user, %{status: "hello"})      data =        File.read!("test/fixtures/emoji-reaction.json") @@ -40,7 +40,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.EmojiReactHandlingTest do    test "it reject invalid emoji reactions" do      user = insert(:user)      other_user = insert(:user, local: false) -    {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) +    {:ok, activity} = CommonAPI.post(user, %{status: "hello"})      data =        File.read!("test/fixtures/emoji-reaction-too-long.json") diff --git a/test/web/activity_pub/transmogrifier/like_handling_test.exs b/test/web/activity_pub/transmogrifier/like_handling_test.exs index 54a5c1dbc..53fe1d550 100644 --- a/test/web/activity_pub/transmogrifier/like_handling_test.exs +++ b/test/web/activity_pub/transmogrifier/like_handling_test.exs @@ -14,7 +14,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.LikeHandlingTest do    test "it works for incoming likes" do      user = insert(:user) -    {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) +    {:ok, activity} = CommonAPI.post(user, %{status: "hello"})      data =        File.read!("test/fixtures/mastodon-like.json") @@ -36,7 +36,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.LikeHandlingTest do    test "it works for incoming misskey likes, turning them into EmojiReacts" do      user = insert(:user) -    {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) +    {:ok, activity} = CommonAPI.post(user, %{status: "hello"})      data =        File.read!("test/fixtures/misskey-like.json") @@ -57,7 +57,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.LikeHandlingTest do    test "it works for incoming misskey likes that contain unicode emojis, turning them into EmojiReacts" do      user = insert(:user) -    {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) +    {:ok, activity} = CommonAPI.post(user, %{status: "hello"})      data =        File.read!("test/fixtures/misskey-like.json") diff --git a/test/web/activity_pub/transmogrifier/undo_handling_test.exs b/test/web/activity_pub/transmogrifier/undo_handling_test.exs index eaf58adf7..01dd6c370 100644 --- a/test/web/activity_pub/transmogrifier/undo_handling_test.exs +++ b/test/web/activity_pub/transmogrifier/undo_handling_test.exs @@ -16,7 +16,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.UndoHandlingTest do    test "it works for incoming emoji reaction undos" do      user = insert(:user) -    {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) +    {:ok, activity} = CommonAPI.post(user, %{status: "hello"})      {:ok, reaction_activity} = CommonAPI.react_with_emoji(activity.id, user, "👌")      data = @@ -34,7 +34,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.UndoHandlingTest do    test "it returns an error for incoming unlikes wihout a like activity" do      user = insert(:user) -    {:ok, activity} = CommonAPI.post(user, %{"status" => "leave a like pls"}) +    {:ok, activity} = CommonAPI.post(user, %{status: "leave a like pls"})      data =        File.read!("test/fixtures/mastodon-undo-like.json") @@ -46,7 +46,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.UndoHandlingTest do    test "it works for incoming unlikes with an existing like activity" do      user = insert(:user) -    {:ok, activity} = CommonAPI.post(user, %{"status" => "leave a like pls"}) +    {:ok, activity} = CommonAPI.post(user, %{status: "leave a like pls"})      like_data =        File.read!("test/fixtures/mastodon-like.json") @@ -77,7 +77,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.UndoHandlingTest do    test "it works for incoming unlikes with an existing like activity and a compact object" do      user = insert(:user) -    {:ok, activity} = CommonAPI.post(user, %{"status" => "leave a like pls"}) +    {:ok, activity} = CommonAPI.post(user, %{status: "leave a like pls"})      like_data =        File.read!("test/fixtures/mastodon-like.json") @@ -104,7 +104,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.UndoHandlingTest do    test "it works for incoming unannounces with an existing notice" do      user = insert(:user) -    {:ok, activity} = CommonAPI.post(user, %{"status" => "hey"}) +    {:ok, activity} = CommonAPI.post(user, %{status: "hey"})      announce_data =        File.read!("test/fixtures/mastodon-announce.json") diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 2914c90ea..0a54e3bb9 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -212,8 +212,8 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        {:ok, activity} =          CommonAPI.post(user, %{ -          "status" => "suya...", -          "poll" => %{"options" => ["suya", "suya.", "suya.."], "expires_in" => 10} +          status: "suya...", +          poll: %{options: ["suya", "suya.", "suya.."], expires_in: 10}          })        object = Object.normalize(activity) @@ -260,6 +260,24 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do                 "<p>henlo from my Psion netBook</p><p>message sent from my Psion netBook</p>"      end +    test "it works for incoming honk announces" do +      _user = insert(:user, ap_id: "https://honktest/u/test", local: false) +      other_user = insert(:user) +      {:ok, post} = CommonAPI.post(other_user, %{status: "bonkeronk"}) + +      announce = %{ +        "@context" => "https://www.w3.org/ns/activitystreams", +        "actor" => "https://honktest/u/test", +        "id" => "https://honktest/u/test/bonk/1793M7B9MQ48847vdx", +        "object" => post.data["object"], +        "published" => "2019-06-25T19:33:58Z", +        "to" => "https://www.w3.org/ns/activitystreams#Public", +        "type" => "Announce" +      } + +      {:ok, %Activity{local: false}} = Transmogrifier.handle_incoming(announce) +    end +      test "it works for incoming announces with actor being inlined (kroeg)" do        data = File.read!("test/fixtures/kroeg-announce-with-inline-actor.json") |> Poison.decode!() @@ -344,7 +362,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it works for incoming announces with an existing activity" do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "hey"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "hey"})        data =          File.read!("test/fixtures/mastodon-announce.json") @@ -394,7 +412,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it does not clobber the addressing on announce activities" do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "hey"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "hey"})        data =          File.read!("test/fixtures/mastodon-announce.json") @@ -480,7 +498,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it strips internal reactions" do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "#cofe"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "#cofe"})        {:ok, _} = CommonAPI.react_with_emoji(activity.id, user, "📢")        %{object: object} = Activity.get_by_id_with_object(activity.id) @@ -815,6 +833,12 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        follower = User.get_cached_by_id(follower.id)        assert User.following?(follower, followed) == true + +      follower = User.get_by_id(follower.id) +      assert follower.following_count == 1 + +      followed = User.get_by_id(followed.id) +      assert followed.follower_count == 1      end      test "it fails for incoming accepts which cannot be correlated" do @@ -972,7 +996,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        user = insert(:user)        other_user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "test post"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "test post"})        object = Object.normalize(activity)        note_obj = %{ @@ -1116,13 +1140,13 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      setup do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "post1"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "post1"})        {:ok, reply1} = -        CommonAPI.post(user, %{"status" => "reply1", "in_reply_to_status_id" => activity.id}) +        CommonAPI.post(user, %{status: "reply1", in_reply_to_status_id: activity.id})        {:ok, reply2} = -        CommonAPI.post(user, %{"status" => "reply2", "in_reply_to_status_id" => activity.id}) +        CommonAPI.post(user, %{status: "reply2", in_reply_to_status_id: activity.id})        replies_uris = Enum.map([reply1, reply2], fn a -> a.object.data["id"] end) @@ -1162,7 +1186,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it inlines private announced objects" do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "hey", "visibility" => "private"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "hey", visibility: "private"})        {:ok, announce_activity, _} = CommonAPI.repeat(activity.id, user) @@ -1177,7 +1201,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        other_user = insert(:user)        {:ok, activity} = -        CommonAPI.post(user, %{"status" => "hey, @#{other_user.nickname}, how are ya? #2hu"}) +        CommonAPI.post(user, %{status: "hey, @#{other_user.nickname}, how are ya? #2hu"})        {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data)        object = modified["object"] @@ -1201,7 +1225,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it adds the sensitive property" do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "#nsfw hey"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "#nsfw hey"})        {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data)        assert modified["object"]["sensitive"] @@ -1210,7 +1234,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it adds the json-ld context and the conversation property" do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "hey"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "hey"})        {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data)        assert modified["@context"] == @@ -1222,7 +1246,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it sets the 'attributedTo' property to the actor of the object if it doesn't have one" do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "hey"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "hey"})        {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data)        assert modified["object"]["actor"] == modified["object"]["attributedTo"] @@ -1231,7 +1255,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it strips internal hashtag data" do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "#2hu"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "#2hu"})        expected_tag = %{          "href" => Pleroma.Web.Endpoint.url() <> "/tags/2hu", @@ -1247,7 +1271,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it strips internal fields" do        user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "#2hu :firefox:"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "#2hu :firefox:"})        {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) @@ -1279,14 +1303,13 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        user = insert(:user)        other_user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "2hu :moominmamma:"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "2hu :moominmamma:"})        {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data)        assert modified["directMessage"] == false -      {:ok, activity} = -        CommonAPI.post(user, %{"status" => "@#{other_user.nickname} :moominmamma:"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "@#{other_user.nickname} :moominmamma:"})        {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) @@ -1294,8 +1317,8 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        {:ok, activity} =          CommonAPI.post(user, %{ -          "status" => "@#{other_user.nickname} :moominmamma:", -          "visibility" => "direct" +          status: "@#{other_user.nickname} :moominmamma:", +          visibility: "direct"          })        {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) @@ -1307,8 +1330,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        user = insert(:user)        {:ok, list} = Pleroma.List.create("foo", user) -      {:ok, activity} = -        CommonAPI.post(user, %{"status" => "foobar", "visibility" => "list:#{list.id}"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "foobar", visibility: "list:#{list.id}"})        {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) @@ -1343,8 +1365,8 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        user_two = insert(:user)        Pleroma.FollowingRelationship.follow(user_two, user, :follow_accept) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "test"}) -      {:ok, unrelated_activity} = CommonAPI.post(user_two, %{"status" => "test"}) +      {:ok, activity} = CommonAPI.post(user, %{status: "test"}) +      {:ok, unrelated_activity} = CommonAPI.post(user_two, %{status: "test"})        assert "http://localhost:4001/users/rye@niu.moe/followers" in activity.recipients        user = User.get_cached_by_id(user.id) @@ -1510,8 +1532,8 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      {:ok, poll_activity} =        CommonAPI.post(user, %{ -        "status" => "suya...", -        "poll" => %{"options" => ["suya", "suya.", "suya.."], "expires_in" => 10} +        status: "suya...", +        poll: %{options: ["suya", "suya.", "suya.."], expires_in: 10}        })      poll_object = Object.normalize(poll_activity) @@ -1854,28 +1876,27 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "sets `replies` collection with a limited number of self-replies" do        [user, another_user] = insert_list(2, :user) -      {:ok, %{id: id1} = activity} = CommonAPI.post(user, %{"status" => "1"}) +      {:ok, %{id: id1} = activity} = CommonAPI.post(user, %{status: "1"})        {:ok, %{id: id2} = self_reply1} = -        CommonAPI.post(user, %{"status" => "self-reply 1", "in_reply_to_status_id" => id1}) +        CommonAPI.post(user, %{status: "self-reply 1", in_reply_to_status_id: id1})        {:ok, self_reply2} = -        CommonAPI.post(user, %{"status" => "self-reply 2", "in_reply_to_status_id" => id1}) +        CommonAPI.post(user, %{status: "self-reply 2", in_reply_to_status_id: id1})        # Assuming to _not_ be present in `replies` due to :note_replies_output_limit is set to 2 -      {:ok, _} = -        CommonAPI.post(user, %{"status" => "self-reply 3", "in_reply_to_status_id" => id1}) +      {:ok, _} = CommonAPI.post(user, %{status: "self-reply 3", in_reply_to_status_id: id1})        {:ok, _} =          CommonAPI.post(user, %{ -          "status" => "self-reply to self-reply", -          "in_reply_to_status_id" => id2 +          status: "self-reply to self-reply", +          in_reply_to_status_id: id2          })        {:ok, _} =          CommonAPI.post(another_user, %{ -          "status" => "another user's reply", -          "in_reply_to_status_id" => id1 +          status: "another user's reply", +          in_reply_to_status_id: id1          })        object = Object.normalize(activity) diff --git a/test/web/activity_pub/utils_test.exs b/test/web/activity_pub/utils_test.exs index b8d811c73..9e0a0f1c4 100644 --- a/test/web/activity_pub/utils_test.exs +++ b/test/web/activity_pub/utils_test.exs @@ -120,7 +120,7 @@ defmodule Pleroma.Web.ActivityPub.UtilsTest do        {:ok, activity} =          CommonAPI.post(user, %{ -          "status" => +          status:              "hey @#{other_user.nickname}, @#{third_user.nickname} how about beering together this weekend?"          }) @@ -139,8 +139,8 @@ defmodule Pleroma.Web.ActivityPub.UtilsTest do        {:ok, activity} =          CommonAPI.post(user, %{ -          "status" => "@#{other_user.nickname} @#{third_user.nickname} bought a new swimsuit!", -          "visibility" => "private" +          status: "@#{other_user.nickname} @#{third_user.nickname} bought a new swimsuit!", +          visibility: "private"          })        %{"to" => to, "cc" => cc} = Utils.make_like_data(other_user, activity, nil) @@ -168,11 +168,11 @@ defmodule Pleroma.Web.ActivityPub.UtilsTest do        {:ok, activity} =          CommonAPI.post(user, %{ -          "status" => "How do I pronounce LaTeX?", -          "poll" => %{ -            "options" => ["laytekh", "lahtekh", "latex"], -            "expires_in" => 20, -            "multiple" => true +          status: "How do I pronounce LaTeX?", +          poll: %{ +            options: ["laytekh", "lahtekh", "latex"], +            expires_in: 20, +            multiple: true            }          }) @@ -187,10 +187,10 @@ defmodule Pleroma.Web.ActivityPub.UtilsTest do        {:ok, activity} =          CommonAPI.post(user, %{ -          "status" => "Are we living in a society?", -          "poll" => %{ -            "options" => ["yes", "no"], -            "expires_in" => 20 +          status: "Are we living in a society?", +          poll: %{ +            options: ["yes", "no"], +            expires_in: 20            }          }) @@ -469,7 +469,7 @@ defmodule Pleroma.Web.ActivityPub.UtilsTest do      test "returns map with Flag object" do        reporter = insert(:user)        target_account = insert(:user) -      {:ok, activity} = CommonAPI.post(target_account, %{"status" => "foobar"}) +      {:ok, activity} = CommonAPI.post(target_account, %{status: "foobar"})        context = Utils.generate_context_id()        content = "foobar" diff --git a/test/web/activity_pub/views/object_view_test.exs b/test/web/activity_pub/views/object_view_test.exs index 6c006206b..43f0617f0 100644 --- a/test/web/activity_pub/views/object_view_test.exs +++ b/test/web/activity_pub/views/object_view_test.exs @@ -44,7 +44,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectViewTest do        activity = insert(:note_activity, user: user)        {:ok, self_reply1} = -        CommonAPI.post(user, %{"status" => "self-reply 1", "in_reply_to_status_id" => activity.id}) +        CommonAPI.post(user, %{status: "self-reply 1", in_reply_to_status_id: activity.id})        replies_uris = [self_reply1.object.data["id"]]        result = ObjectView.render("object.json", %{object: refresh_record(activity)}) diff --git a/test/web/activity_pub/views/user_view_test.exs b/test/web/activity_pub/views/user_view_test.exs index 8d00893a5..20b0f223c 100644 --- a/test/web/activity_pub/views/user_view_test.exs +++ b/test/web/activity_pub/views/user_view_test.exs @@ -164,7 +164,7 @@ defmodule Pleroma.Web.ActivityPub.UserViewTest do      posts =        for i <- 0..25 do -        {:ok, activity} = CommonAPI.post(user, %{"status" => "post #{i}"}) +        {:ok, activity} = CommonAPI.post(user, %{status: "post #{i}"})          activity        end diff --git a/test/web/activity_pub/visibilty_test.exs b/test/web/activity_pub/visibilty_test.exs index 5b91630d4..8e9354c65 100644 --- a/test/web/activity_pub/visibilty_test.exs +++ b/test/web/activity_pub/visibilty_test.exs @@ -21,21 +21,21 @@ defmodule Pleroma.Web.ActivityPub.VisibilityTest do      Pleroma.List.follow(list, unrelated)      {:ok, public} = -      CommonAPI.post(user, %{"status" => "@#{mentioned.nickname}", "visibility" => "public"}) +      CommonAPI.post(user, %{status: "@#{mentioned.nickname}", visibility: "public"})      {:ok, private} = -      CommonAPI.post(user, %{"status" => "@#{mentioned.nickname}", "visibility" => "private"}) +      CommonAPI.post(user, %{status: "@#{mentioned.nickname}", visibility: "private"})      {:ok, direct} = -      CommonAPI.post(user, %{"status" => "@#{mentioned.nickname}", "visibility" => "direct"}) +      CommonAPI.post(user, %{status: "@#{mentioned.nickname}", visibility: "direct"})      {:ok, unlisted} = -      CommonAPI.post(user, %{"status" => "@#{mentioned.nickname}", "visibility" => "unlisted"}) +      CommonAPI.post(user, %{status: "@#{mentioned.nickname}", visibility: "unlisted"})      {:ok, list} =        CommonAPI.post(user, %{ -        "status" => "@#{mentioned.nickname}", -        "visibility" => "list:#{list.id}" +        status: "@#{mentioned.nickname}", +        visibility: "list:#{list.id}"        })      %{  | 
