diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/fixtures/tesla_mock/emoji-in-summary.json | 49 | ||||
| -rw-r--r-- | test/pleroma/web/common_api_test.exs | 26 | ||||
| -rw-r--r-- | test/support/http_request_mock.ex | 9 | 
3 files changed, 84 insertions, 0 deletions
| diff --git a/test/fixtures/tesla_mock/emoji-in-summary.json b/test/fixtures/tesla_mock/emoji-in-summary.json new file mode 100644 index 000000000..f77c6e2e8 --- /dev/null +++ b/test/fixtures/tesla_mock/emoji-in-summary.json @@ -0,0 +1,49 @@ +{ +  "@context": [ +    "https://www.w3.org/ns/activitystreams", +    "https://patch.cx/schemas/litepub-0.1.jsonld", +    { +      "@language": "und" +    } +  ], +  "actor": "https://patch.cx/users/rin", +  "attachment": [], +  "attributedTo": "https://patch.cx/users/rin", +  "cc": [ +    "https://patch.cx/users/rin/followers" +  ], +  "content": ":joker_disapprove: <br><br>just grabbing a test fixture, nevermind me", +  "context": "https://patch.cx/contexts/2c3ce4b4-18b1-4b1a-8965-3932027b5326", +  "conversation": "https://patch.cx/contexts/2c3ce4b4-18b1-4b1a-8965-3932027b5326", +  "id": "https://patch.cx/objects/a399c28e-c821-4820-bc3e-4afeb044c16f", +  "published": "2021-03-22T16:54:46.461939Z", +  "sensitive": null, +  "source": ":joker_disapprove: \r\n\r\njust grabbing a test fixture, nevermind me", +  "summary": ":joker_smile: ", +  "tag": [ +    { +      "icon": { +        "type": "Image", +        "url": "https://patch.cx/emoji/custom/joker_disapprove.png" +      }, +      "id": "https://patch.cx/emoji/custom/joker_disapprove.png", +      "name": ":joker_disapprove:", +      "type": "Emoji", +      "updated": "1970-01-01T00:00:00Z" +    }, +    { +      "icon": { +        "type": "Image", +        "url": "https://patch.cx/emoji/custom/joker_smile.png" +      }, +      "id": "https://patch.cx/emoji/custom/joker_smile.png", +      "name": ":joker_smile:", +      "type": "Emoji", +      "updated": "1970-01-01T00:00:00Z" +    } +  ], +  "to": [ +    "https://www.w3.org/ns/activitystreams#Public" +  ], +  "type": "Note" +} diff --git a/test/pleroma/web/common_api_test.exs b/test/pleroma/web/common_api_test.exs index 9d005697c..6619f8fc8 100644 --- a/test/pleroma/web/common_api_test.exs +++ b/test/pleroma/web/common_api_test.exs @@ -25,6 +25,11 @@ defmodule Pleroma.Web.CommonAPITest do    require Pleroma.Constants +  setup_all do +    Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) +    :ok +  end +    setup do: clear_config([:instance, :safe_dm_mentions])    setup do: clear_config([:instance, :limit])    setup do: clear_config([:instance, :max_pinned_statuses]) @@ -517,6 +522,27 @@ defmodule Pleroma.Web.CommonAPITest do        assert url == "#{Pleroma.Web.base_url()}/emoji/blank.png"      end +    test "it copies emoji from the subject of the parent post" do +      %Object{} = +        object = +        Object.normalize("https://patch.cx/objects/a399c28e-c821-4820-bc3e-4afeb044c16f", +          fetch: true +        ) + +      activity = Activity.get_create_by_object_ap_id(object.data["id"]) +      user = insert(:user) + +      {:ok, reply_activity} = +        CommonAPI.post(user, %{ +          in_reply_to_id: activity.id, +          status: ":joker_disapprove:", +          spoiler_text: ":joker_smile:" +        }) + +      assert Object.normalize(reply_activity).data["emoji"][":joker_smile:"] +      refute Object.normalize(reply_activity).data["emoji"][":joker_disapprove:"] +    end +      test "deactivated users can't post" do        user = insert(:user, is_active: false)        assert {:error, _} = CommonAPI.post(user, %{status: "ye"}) diff --git a/test/support/http_request_mock.ex b/test/support/http_request_mock.ex index 1e98020f0..eb692fab5 100644 --- a/test/support/http_request_mock.ex +++ b/test/support/http_request_mock.ex @@ -1278,6 +1278,15 @@ defmodule HttpRequestMock do       }}    end +  def get("https://patch.cx/objects/a399c28e-c821-4820-bc3e-4afeb044c16f", _, _, _) do +    {:ok, +     %Tesla.Env{ +       status: 200, +       body: File.read!("test/fixtures/tesla_mock/emoji-in-summary.json"), +       headers: activitypub_object_headers() +     }} +  end +    def get(url, query, body, headers) do      {:error,       "Mock response not implemented for GET #{inspect(url)}, #{query}, #{inspect(body)}, #{ | 
