1 defmodule Pleroma.Web.EmojiAPI.EmojiAPIControllerTest do
2 use Pleroma.Web.ConnCase
8 test "shared & non-shared pack information in list_packs is ok" do
10 resp = conn |> get(emoji_api_path(conn, :list_packs)) |> json_response(200)
12 assert Map.has_key?(resp, "test_pack")
14 pack = resp["test_pack"]
16 assert Map.has_key?(pack["pack"], "download-sha256")
17 assert pack["pack"]["can-download"]
19 assert pack["files"] == %{"blank" => "blank.png"}
23 assert Map.has_key?(resp, "test_pack_nonshared")
25 pack = resp["test_pack_nonshared"]
27 refute pack["pack"]["shared"]
28 refute pack["pack"]["can-download"]
31 test "downloading a shared pack from download_shared" do
36 |> get(emoji_api_path(conn, :download_shared, "test_pack"))
39 {:ok, arch} = :zip.unzip(resp, [:memory])
41 assert Enum.find(arch, fn {n, _} -> n == 'pack.json' end)
42 assert Enum.find(arch, fn {n, _} -> n == 'blank.png' end)
45 test "downloading shared & unshared packs from another instance via download_from, deleting them" do
47 File.rm_rf!("test/instance_static/emoji/test_pack2")
48 File.rm_rf!("test/instance_static/emoji/test_pack_nonshared2")
54 url: "https://example.com/api/pleroma/emoji/packs/list"
59 |> get(emoji_api_path(conn, :list_packs))
65 url: "https://example.com/api/pleroma/emoji/packs/download_shared/test_pack"
70 |> get(emoji_api_path(conn, :download_shared, "test_pack"))
76 url: "https://nonshared-pack"
78 text(File.read!("test/instance_static/emoji/test_pack_nonshared/nonshared.zip"))
81 admin = insert(:user, info: %{is_admin: true})
86 |> put_req_header("content-type", "application/json")
87 |> assign(:user, admin)
94 instance_address: "https://example.com",
95 pack_name: "test_pack",
100 |> text_response(200) == "ok"
102 assert File.exists?("test/instance_static/emoji/test_pack2/pack.json")
103 assert File.exists?("test/instance_static/emoji/test_pack2/blank.png")
106 |> assign(:user, admin)
107 |> delete(emoji_api_path(conn, :delete, "test_pack2"))
108 |> response(200) == "ok"
110 refute File.exists?("test/instance_static/emoji/test_pack2")
112 # non-shared, downloaded from the fallback URL
117 |> put_req_header("content-type", "application/json")
118 |> assign(:user, admin)
125 instance_address: "https://example.com",
126 pack_name: "test_pack_nonshared",
127 as: "test_pack_nonshared2"
131 |> text_response(200) == "ok"
133 assert File.exists?("test/instance_static/emoji/test_pack_nonshared2/pack.json")
134 assert File.exists?("test/instance_static/emoji/test_pack_nonshared2/blank.png")
137 |> assign(:user, admin)
138 |> delete(emoji_api_path(conn, :delete, "test_pack_nonshared2"))
139 |> response(200) == "ok"
141 refute File.exists?("test/instance_static/emoji/test_pack_nonshared2")