diff options
| author | feld <feld@feld.me> | 2020-10-05 17:52:02 +0000 | 
|---|---|---|
| committer | feld <feld@feld.me> | 2020-10-05 17:52:02 +0000 | 
| commit | 4d852f3e78d6fcfe7bb2ef8b8d3a2f29359dd20c (patch) | |
| tree | 61947d678e4f0a1be1a71e68f0bf4f03301eb725 /test/web | |
| parent | 4b05eb9a321ebdc03588f786683e83427fe31f1c (diff) | |
| parent | 346cc3ac244384d37d1bcbbe888173725465a307 (diff) | |
| download | pleroma-4d852f3e78d6fcfe7bb2ef8b8d3a2f29359dd20c.tar.gz pleroma-4d852f3e78d6fcfe7bb2ef8b8d3a2f29359dd20c.zip | |
Merge branch 'feature/1893-remote-emoji-packs-pagination' into 'develop'
Feature/1893 remote emoji packs pagination
Closes #1893
See merge request pleroma/pleroma!2698
Diffstat (limited to 'test/web')
| -rw-r--r-- | test/web/pleroma_api/controllers/emoji_file_controller_test.exs | 40 | ||||
| -rw-r--r-- | test/web/pleroma_api/controllers/emoji_pack_controller_test.exs | 112 | 
2 files changed, 91 insertions, 61 deletions
| diff --git a/test/web/pleroma_api/controllers/emoji_file_controller_test.exs b/test/web/pleroma_api/controllers/emoji_file_controller_test.exs index 39b4e1dac..82de86ee3 100644 --- a/test/web/pleroma_api/controllers/emoji_file_controller_test.exs +++ b/test/web/pleroma_api/controllers/emoji_file_controller_test.exs @@ -29,7 +29,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do      {:ok, %{admin_conn: admin_conn}}    end -  describe "POST/PATCH/DELETE /api/pleroma/emoji/packs/:name/files" do +  describe "POST/PATCH/DELETE /api/pleroma/emoji/packs/files?name=:name" do      setup do        pack_file = "#{@emoji_path}/test_pack/pack.json"        original_content = File.read!(pack_file) @@ -56,7 +56,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do        resp =          admin_conn          |> put_req_header("content-type", "multipart/form-data") -        |> post("/api/pleroma/emoji/packs/test_pack/files", %{ +        |> post("/api/pleroma/emoji/packs/files?name=test_pack", %{            file: %Plug.Upload{              content_type: "application/zip",              filename: "emojis.zip", @@ -83,7 +83,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do      test "create shortcode exists", %{admin_conn: admin_conn} do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> post("/api/pleroma/emoji/packs/test_pack/files", %{ +             |> post("/api/pleroma/emoji/packs/files?name=test_pack", %{                 shortcode: "blank",                 filename: "dir/blank.png",                 file: %Plug.Upload{ @@ -101,7 +101,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> post("/api/pleroma/emoji/packs/test_pack/files", %{ +             |> post("/api/pleroma/emoji/packs/files?name=test_pack", %{                 shortcode: "blank3",                 filename: "dir/blank.png",                 file: %Plug.Upload{ @@ -119,7 +119,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> patch("/api/pleroma/emoji/packs/test_pack/files", %{ +             |> patch("/api/pleroma/emoji/packs/files?name=test_pack", %{                 shortcode: "blank",                 new_shortcode: "blank2",                 new_filename: "dir_2/blank_3.png" @@ -135,7 +135,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> post("/api/pleroma/emoji/packs/test_pack/files", %{ +             |> post("/api/pleroma/emoji/packs/files?name=test_pack", %{                 shortcode: "blank3",                 filename: "dir/blank.png",                 file: %Plug.Upload{ @@ -153,7 +153,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> patch("/api/pleroma/emoji/packs/test_pack/files", %{ +             |> patch("/api/pleroma/emoji/packs/files?name=test_pack", %{                 shortcode: "blank3",                 new_shortcode: "blank4",                 new_filename: "dir_2/blank_3.png", @@ -171,7 +171,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do      test "with empty filename", %{admin_conn: admin_conn} do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> post("/api/pleroma/emoji/packs/test_pack/files", %{ +             |> post("/api/pleroma/emoji/packs/files?name=test_pack", %{                 shortcode: "blank2",                 filename: "",                 file: %Plug.Upload{ @@ -187,7 +187,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do      test "add file with not loaded pack", %{admin_conn: admin_conn} do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> post("/api/pleroma/emoji/packs/not_loaded/files", %{ +             |> post("/api/pleroma/emoji/packs/files?name=not_loaded", %{                 shortcode: "blank3",                 filename: "dir/blank.png",                 file: %Plug.Upload{ @@ -202,7 +202,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do      test "remove file with not loaded pack", %{admin_conn: admin_conn} do        assert admin_conn -             |> delete("/api/pleroma/emoji/packs/not_loaded/files?shortcode=blank3") +             |> delete("/api/pleroma/emoji/packs/files?name=not_loaded&shortcode=blank3")               |> json_response_and_validate_schema(:not_found) == %{                 "error" => "pack \"not_loaded\" is not found"               } @@ -210,7 +210,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do      test "remove file with empty shortcode", %{admin_conn: admin_conn} do        assert admin_conn -             |> delete("/api/pleroma/emoji/packs/not_loaded/files?shortcode=") +             |> delete("/api/pleroma/emoji/packs/files?name=not_loaded&shortcode=")               |> json_response_and_validate_schema(:not_found) == %{                 "error" => "pack \"not_loaded\" is not found"               } @@ -219,7 +219,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do      test "update file with not loaded pack", %{admin_conn: admin_conn} do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> patch("/api/pleroma/emoji/packs/not_loaded/files", %{ +             |> patch("/api/pleroma/emoji/packs/files?name=not_loaded", %{                 shortcode: "blank4",                 new_shortcode: "blank3",                 new_filename: "dir_2/blank_3.png" @@ -232,7 +232,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do      test "new with shortcode as file with update", %{admin_conn: admin_conn} do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> post("/api/pleroma/emoji/packs/test_pack/files", %{ +             |> post("/api/pleroma/emoji/packs/files?name=test_pack", %{                 shortcode: "blank4",                 filename: "dir/blank.png",                 file: %Plug.Upload{ @@ -250,7 +250,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> patch("/api/pleroma/emoji/packs/test_pack/files", %{ +             |> patch("/api/pleroma/emoji/packs/files?name=test_pack", %{                 shortcode: "blank4",                 new_shortcode: "blank3",                 new_filename: "dir_2/blank_3.png" @@ -265,7 +265,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do        assert File.exists?("#{@emoji_path}/test_pack/dir_2/blank_3.png")        assert admin_conn -             |> delete("/api/pleroma/emoji/packs/test_pack/files?shortcode=blank3") +             |> delete("/api/pleroma/emoji/packs/files?name=test_pack&shortcode=blank3")               |> json_response_and_validate_schema(200) == %{                 "blank" => "blank.png",                 "blank2" => "blank2.png" @@ -287,7 +287,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> post("/api/pleroma/emoji/packs/test_pack/files", %{ +             |> post("/api/pleroma/emoji/packs/files?name=test_pack", %{                 shortcode: "blank_url",                 file: "https://test-blank/blank_url.png"               }) @@ -307,7 +307,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> post("/api/pleroma/emoji/packs/test_pack/files", %{ +             |> post("/api/pleroma/emoji/packs/files?name=test_pack", %{                 file: %Plug.Upload{                   filename: "shortcode.png",                   path: "#{Pleroma.Config.get([:instance, :static_dir])}/add/shortcode.png" @@ -322,7 +322,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do      test "remove non existing shortcode in pack.json", %{admin_conn: admin_conn} do        assert admin_conn -             |> delete("/api/pleroma/emoji/packs/test_pack/files?shortcode=blank3") +             |> delete("/api/pleroma/emoji/packs/files?name=test_pack&shortcode=blank3")               |> json_response_and_validate_schema(:bad_request) == %{                 "error" => "Emoji \"blank3\" does not exist"               } @@ -331,7 +331,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do      test "update non existing emoji", %{admin_conn: admin_conn} do        assert admin_conn               |> put_req_header("content-type", "multipart/form-data") -             |> patch("/api/pleroma/emoji/packs/test_pack/files", %{ +             |> patch("/api/pleroma/emoji/packs/files?name=test_pack", %{                 shortcode: "blank3",                 new_shortcode: "blank4",                 new_filename: "dir_2/blank_3.png" @@ -347,7 +347,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiFileControllerTest do               } =                 admin_conn                 |> put_req_header("content-type", "multipart/form-data") -               |> patch("/api/pleroma/emoji/packs/test_pack/files", %{ +               |> patch("/api/pleroma/emoji/packs/files?name=test_pack", %{                   shortcode: "blank",                   new_filename: "dir_2/blank_3.png"                 }) diff --git a/test/web/pleroma_api/controllers/emoji_pack_controller_test.exs b/test/web/pleroma_api/controllers/emoji_pack_controller_test.exs index a34df2c18..386ad8634 100644 --- a/test/web/pleroma_api/controllers/emoji_pack_controller_test.exs +++ b/test/web/pleroma_api/controllers/emoji_pack_controller_test.exs @@ -37,11 +37,11 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do    test "GET /api/pleroma/emoji/packs", %{conn: conn} do      resp = conn |> get("/api/pleroma/emoji/packs") |> json_response_and_validate_schema(200) -    assert resp["count"] == 3 +    assert resp["count"] == 4      assert resp["packs"]             |> Map.keys() -           |> length() == 3 +           |> length() == 4      shared = resp["packs"]["test_pack"]      assert shared["files"] == %{"blank" => "blank.png", "blank2" => "blank2.png"} @@ -58,7 +58,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do        |> get("/api/pleroma/emoji/packs?page_size=1")        |> json_response_and_validate_schema(200) -    assert resp["count"] == 3 +    assert resp["count"] == 4      packs = Map.keys(resp["packs"]) @@ -71,7 +71,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do        |> get("/api/pleroma/emoji/packs?page_size=1&page=2")        |> json_response_and_validate_schema(200) -    assert resp["count"] == 3 +    assert resp["count"] == 4      packs = Map.keys(resp["packs"])      assert length(packs) == 1      [pack2] = packs @@ -81,18 +81,28 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do        |> get("/api/pleroma/emoji/packs?page_size=1&page=3")        |> json_response_and_validate_schema(200) -    assert resp["count"] == 3 +    assert resp["count"] == 4      packs = Map.keys(resp["packs"])      assert length(packs) == 1      [pack3] = packs -    assert [pack1, pack2, pack3] |> Enum.uniq() |> length() == 3 + +    resp = +      conn +      |> get("/api/pleroma/emoji/packs?page_size=1&page=4") +      |> json_response_and_validate_schema(200) + +    assert resp["count"] == 4 +    packs = Map.keys(resp["packs"]) +    assert length(packs) == 1 +    [pack4] = packs +    assert [pack1, pack2, pack3, pack4] |> Enum.uniq() |> length() == 4    end    describe "GET /api/pleroma/emoji/packs/remote" do      test "shareable instance", %{admin_conn: admin_conn, conn: conn} do        resp =          conn -        |> get("/api/pleroma/emoji/packs") +        |> get("/api/pleroma/emoji/packs?page=2&page_size=1")          |> json_response_and_validate_schema(200)        mock(fn @@ -102,12 +112,12 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do          %{method: :get, url: "https://example.com/nodeinfo/2.1.json"} ->            json(%{metadata: %{features: ["shareable_emoji_packs"]}}) -        %{method: :get, url: "https://example.com/api/pleroma/emoji/packs"} -> +        %{method: :get, url: "https://example.com/api/pleroma/emoji/packs?page=2&page_size=1"} ->            json(resp)        end)        assert admin_conn -             |> get("/api/pleroma/emoji/packs/remote?url=https://example.com") +             |> get("/api/pleroma/emoji/packs/remote?url=https://example.com&page=2&page_size=1")               |> json_response_and_validate_schema(200) == resp      end @@ -128,11 +138,11 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do      end    end -  describe "GET /api/pleroma/emoji/packs/:name/archive" do +  describe "GET /api/pleroma/emoji/packs/archive?name=:name" do      test "download shared pack", %{conn: conn} do        resp =          conn -        |> get("/api/pleroma/emoji/packs/test_pack/archive") +        |> get("/api/pleroma/emoji/packs/archive?name=test_pack")          |> response(200)        {:ok, arch} = :zip.unzip(resp, [:memory]) @@ -143,7 +153,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do      test "non existing pack", %{conn: conn} do        assert conn -             |> get("/api/pleroma/emoji/packs/test_pack_for_import/archive") +             |> get("/api/pleroma/emoji/packs/archive?name=test_pack_for_import")               |> json_response_and_validate_schema(:not_found) == %{                 "error" => "Pack test_pack_for_import does not exist"               } @@ -151,7 +161,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do      test "non downloadable pack", %{conn: conn} do        assert conn -             |> get("/api/pleroma/emoji/packs/test_pack_nonshared/archive") +             |> get("/api/pleroma/emoji/packs/archive?name=test_pack_nonshared")               |> json_response_and_validate_schema(:forbidden) == %{                 "error" =>                   "Pack test_pack_nonshared cannot be downloaded from this instance, either pack sharing was disabled for this pack or some files are missing" @@ -173,28 +183,28 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do          %{            method: :get, -          url: "https://example.com/api/pleroma/emoji/packs/test_pack" +          url: "https://example.com/api/pleroma/emoji/pack?name=test_pack"          } ->            conn -          |> get("/api/pleroma/emoji/packs/test_pack") +          |> get("/api/pleroma/emoji/pack?name=test_pack")            |> json_response_and_validate_schema(200)            |> json()          %{            method: :get, -          url: "https://example.com/api/pleroma/emoji/packs/test_pack/archive" +          url: "https://example.com/api/pleroma/emoji/packs/archive?name=test_pack"          } ->            conn -          |> get("/api/pleroma/emoji/packs/test_pack/archive") +          |> get("/api/pleroma/emoji/packs/archive?name=test_pack")            |> response(200)            |> text()          %{            method: :get, -          url: "https://example.com/api/pleroma/emoji/packs/test_pack_nonshared" +          url: "https://example.com/api/pleroma/emoji/pack?name=test_pack_nonshared"          } ->            conn -          |> get("/api/pleroma/emoji/packs/test_pack_nonshared") +          |> get("/api/pleroma/emoji/pack?name=test_pack_nonshared")            |> json_response_and_validate_schema(200)            |> json() @@ -218,7 +228,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do        assert File.exists?("#{@emoji_path}/test_pack2/blank.png")        assert admin_conn -             |> delete("/api/pleroma/emoji/packs/test_pack2") +             |> delete("/api/pleroma/emoji/pack?name=test_pack2")               |> json_response_and_validate_schema(200) == "ok"        refute File.exists?("#{@emoji_path}/test_pack2") @@ -239,7 +249,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do        assert File.exists?("#{@emoji_path}/test_pack_nonshared2/blank.png")        assert admin_conn -             |> delete("/api/pleroma/emoji/packs/test_pack_nonshared2") +             |> delete("/api/pleroma/emoji/pack?name=test_pack_nonshared2")               |> json_response_and_validate_schema(200) == "ok"        refute File.exists?("#{@emoji_path}/test_pack_nonshared2") @@ -279,14 +289,14 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do          %{            method: :get, -          url: "https://example.com/api/pleroma/emoji/packs/pack_bad_sha" +          url: "https://example.com/api/pleroma/emoji/pack?name=pack_bad_sha"          } ->            {:ok, pack} = Pleroma.Emoji.Pack.load_pack("pack_bad_sha")            %Tesla.Env{status: 200, body: Jason.encode!(pack)}          %{            method: :get, -          url: "https://example.com/api/pleroma/emoji/packs/pack_bad_sha/archive" +          url: "https://example.com/api/pleroma/emoji/packs/archive?name=pack_bad_sha"          } ->            %Tesla.Env{              status: 200, @@ -316,7 +326,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do          %{            method: :get, -          url: "https://example.com/api/pleroma/emoji/packs/test_pack" +          url: "https://example.com/api/pleroma/emoji/pack?name=test_pack"          } ->            {:ok, pack} = Pleroma.Emoji.Pack.load_pack("test_pack")            %Tesla.Env{status: 200, body: Jason.encode!(pack)} @@ -336,7 +346,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do      end    end -  describe "PATCH /api/pleroma/emoji/packs/:name" do +  describe "PATCH /api/pleroma/emoji/pack?name=:name" do      setup do        pack_file = "#{@emoji_path}/test_pack/pack.json"        original_content = File.read!(pack_file) @@ -358,7 +368,9 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do      test "for a pack without a fallback source", ctx do        assert ctx[:admin_conn]               |> put_req_header("content-type", "multipart/form-data") -             |> patch("/api/pleroma/emoji/packs/test_pack", %{"metadata" => ctx[:new_data]}) +             |> patch("/api/pleroma/emoji/pack?name=test_pack", %{ +               "metadata" => ctx[:new_data] +             })               |> json_response_and_validate_schema(200) == ctx[:new_data]        assert Jason.decode!(File.read!(ctx[:pack_file]))["pack"] == ctx[:new_data] @@ -384,7 +396,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do        assert ctx[:admin_conn]               |> put_req_header("content-type", "multipart/form-data") -             |> patch("/api/pleroma/emoji/packs/test_pack", %{metadata: new_data}) +             |> patch("/api/pleroma/emoji/pack?name=test_pack", %{metadata: new_data})               |> json_response_and_validate_schema(200) == new_data_with_sha        assert Jason.decode!(File.read!(ctx[:pack_file]))["pack"] == new_data_with_sha @@ -404,17 +416,17 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do        assert ctx[:admin_conn]               |> put_req_header("content-type", "multipart/form-data") -             |> patch("/api/pleroma/emoji/packs/test_pack", %{metadata: new_data}) +             |> patch("/api/pleroma/emoji/pack?name=test_pack", %{metadata: new_data})               |> json_response_and_validate_schema(:bad_request) == %{                 "error" => "The fallback archive does not have all files specified in pack.json"               }      end    end -  describe "POST/DELETE /api/pleroma/emoji/packs/:name" do +  describe "POST/DELETE /api/pleroma/emoji/pack?name=:name" do      test "creating and deleting a pack", %{admin_conn: admin_conn} do        assert admin_conn -             |> post("/api/pleroma/emoji/packs/test_created") +             |> post("/api/pleroma/emoji/pack?name=test_created")               |> json_response_and_validate_schema(200) == "ok"        assert File.exists?("#{@emoji_path}/test_created/pack.json") @@ -426,7 +438,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do               }        assert admin_conn -             |> delete("/api/pleroma/emoji/packs/test_created") +             |> delete("/api/pleroma/emoji/pack?name=test_created")               |> json_response_and_validate_schema(200) == "ok"        refute File.exists?("#{@emoji_path}/test_created/pack.json") @@ -439,7 +451,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do        File.write!(Path.join(path, "pack.json"), pack_file)        assert admin_conn -             |> post("/api/pleroma/emoji/packs/test_created") +             |> post("/api/pleroma/emoji/pack?name=test_created")               |> json_response_and_validate_schema(:conflict) == %{                 "error" => "A pack named \"test_created\" already exists"               } @@ -449,7 +461,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do      test "with empty name", %{admin_conn: admin_conn} do        assert admin_conn -             |> post("/api/pleroma/emoji/packs/ ") +             |> post("/api/pleroma/emoji/pack?name= ")               |> json_response_and_validate_schema(:bad_request) == %{                 "error" => "pack name cannot be empty"               } @@ -458,7 +470,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do    test "deleting nonexisting pack", %{admin_conn: admin_conn} do      assert admin_conn -           |> delete("/api/pleroma/emoji/packs/non_existing") +           |> delete("/api/pleroma/emoji/pack?name=non_existing")             |> json_response_and_validate_schema(:not_found) == %{               "error" => "Pack non_existing does not exist"             } @@ -466,7 +478,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do    test "deleting with empty name", %{admin_conn: admin_conn} do      assert admin_conn -           |> delete("/api/pleroma/emoji/packs/ ") +           |> delete("/api/pleroma/emoji/pack?name= ")             |> json_response_and_validate_schema(:bad_request) == %{               "error" => "pack name cannot be empty"             } @@ -514,7 +526,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do             }    end -  describe "GET /api/pleroma/emoji/packs/:name" do +  describe "GET /api/pleroma/emoji/pack?name=:name" do      test "shows pack.json", %{conn: conn} do        assert %{                 "files" => files, @@ -529,7 +541,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do                 }               } =                 conn -               |> get("/api/pleroma/emoji/packs/test_pack") +               |> get("/api/pleroma/emoji/pack?name=test_pack")                 |> json_response_and_validate_schema(200)        assert files == %{"blank" => "blank.png", "blank2" => "blank2.png"} @@ -539,7 +551,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do                 "files_count" => 2               } =                 conn -               |> get("/api/pleroma/emoji/packs/test_pack?page_size=1") +               |> get("/api/pleroma/emoji/pack?name=test_pack&page_size=1")                 |> json_response_and_validate_schema(200)        assert files |> Map.keys() |> length() == 1 @@ -549,15 +561,33 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do                 "files_count" => 2               } =                 conn -               |> get("/api/pleroma/emoji/packs/test_pack?page_size=1&page=2") +               |> get("/api/pleroma/emoji/pack?name=test_pack&page_size=1&page=2")                 |> json_response_and_validate_schema(200)        assert files |> Map.keys() |> length() == 1      end +    test "for pack name with special chars", %{conn: conn} do +      assert %{ +               "files" => files, +               "files_count" => 1, +               "pack" => %{ +                 "can-download" => true, +                 "description" => "Test description", +                 "download-sha256" => _, +                 "homepage" => "https://pleroma.social", +                 "license" => "Test license", +                 "share-files" => true +               } +             } = +               conn +               |> get("/api/pleroma/emoji/pack?name=blobs.gg") +               |> json_response_and_validate_schema(200) +    end +      test "non existing pack", %{conn: conn} do        assert conn -             |> get("/api/pleroma/emoji/packs/non_existing") +             |> get("/api/pleroma/emoji/pack?name=non_existing")               |> json_response_and_validate_schema(:not_found) == %{                 "error" => "Pack non_existing does not exist"               } @@ -565,7 +595,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do      test "error name", %{conn: conn} do        assert conn -             |> get("/api/pleroma/emoji/packs/ ") +             |> get("/api/pleroma/emoji/pack?name= ")               |> json_response_and_validate_schema(:bad_request) == %{                 "error" => "pack name cannot be empty"               } | 
