diff options
Diffstat (limited to 'test/web')
| -rw-r--r-- | test/web/activity_pub/transmogrifier/like_handling_test.exs | 78 | ||||
| -rw-r--r-- | test/web/activity_pub/transmogrifier_test.exs | 56 | 
2 files changed, 78 insertions, 56 deletions
| diff --git a/test/web/activity_pub/transmogrifier/like_handling_test.exs b/test/web/activity_pub/transmogrifier/like_handling_test.exs new file mode 100644 index 000000000..54a5c1dbc --- /dev/null +++ b/test/web/activity_pub/transmogrifier/like_handling_test.exs @@ -0,0 +1,78 @@ +# 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.LikeHandlingTest do +  use Pleroma.DataCase + +  alias Pleroma.Activity +  alias Pleroma.Web.ActivityPub.Transmogrifier +  alias Pleroma.Web.CommonAPI + +  import Pleroma.Factory + +  test "it works for incoming likes" do +    user = insert(:user) + +    {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) + +    data = +      File.read!("test/fixtures/mastodon-like.json") +      |> Poison.decode!() +      |> Map.put("object", activity.data["object"]) + +    _actor = insert(:user, ap_id: data["actor"], local: false) + +    {:ok, %Activity{data: data, local: false} = activity} = Transmogrifier.handle_incoming(data) + +    refute Enum.empty?(activity.recipients) + +    assert data["actor"] == "http://mastodon.example.org/users/admin" +    assert data["type"] == "Like" +    assert data["id"] == "http://mastodon.example.org/users/admin#likes/2" +    assert data["object"] == activity.data["object"] +  end + +  test "it works for incoming misskey likes, turning them into EmojiReacts" do +    user = insert(:user) + +    {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) + +    data = +      File.read!("test/fixtures/misskey-like.json") +      |> Poison.decode!() +      |> Map.put("object", activity.data["object"]) + +    _actor = insert(:user, ap_id: data["actor"], local: false) + +    {:ok, %Activity{data: activity_data, local: false}} = Transmogrifier.handle_incoming(data) + +    assert activity_data["actor"] == data["actor"] +    assert activity_data["type"] == "EmojiReact" +    assert activity_data["id"] == data["id"] +    assert activity_data["object"] == activity.data["object"] +    assert activity_data["content"] == "🍮" +  end + +  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"}) + +    data = +      File.read!("test/fixtures/misskey-like.json") +      |> Poison.decode!() +      |> Map.put("object", activity.data["object"]) +      |> Map.put("_misskey_reaction", "⭐") + +    _actor = insert(:user, ap_id: data["actor"], local: false) + +    {:ok, %Activity{data: activity_data, local: false}} = Transmogrifier.handle_incoming(data) + +    assert activity_data["actor"] == data["actor"] +    assert activity_data["type"] == "EmojiReact" +    assert activity_data["id"] == data["id"] +    assert activity_data["object"] == activity.data["object"] +    assert activity_data["content"] == "⭐" +  end +end diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 36e1e7bd1..23efa4be6 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -325,62 +325,6 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        assert object_data["cc"] == to      end -    test "it works for incoming likes" do -      user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) - -      data = -        File.read!("test/fixtures/mastodon-like.json") -        |> Poison.decode!() -        |> Map.put("object", activity.data["object"]) - -      {:ok, %Activity{data: data, local: false} = activity} = Transmogrifier.handle_incoming(data) - -      refute Enum.empty?(activity.recipients) - -      assert data["actor"] == "http://mastodon.example.org/users/admin" -      assert data["type"] == "Like" -      assert data["id"] == "http://mastodon.example.org/users/admin#likes/2" -      assert data["object"] == activity.data["object"] -    end - -    test "it works for incoming misskey likes, turning them into EmojiReacts" do -      user = insert(:user) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) - -      data = -        File.read!("test/fixtures/misskey-like.json") -        |> Poison.decode!() -        |> Map.put("object", activity.data["object"]) - -      {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - -      assert data["actor"] == data["actor"] -      assert data["type"] == "EmojiReact" -      assert data["id"] == data["id"] -      assert data["object"] == activity.data["object"] -      assert data["content"] == "🍮" -    end - -    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"}) - -      data = -        File.read!("test/fixtures/misskey-like.json") -        |> Poison.decode!() -        |> Map.put("object", activity.data["object"]) -        |> Map.put("_misskey_reaction", "⭐") - -      {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - -      assert data["actor"] == data["actor"] -      assert data["type"] == "EmojiReact" -      assert data["id"] == data["id"] -      assert data["object"] == activity.data["object"] -      assert data["content"] == "⭐" -    end -      test "it works for incoming emoji reactions" do        user = insert(:user)        {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"}) | 
