Add tests for downloading from fallback url
authorEkaterina Vaartis <vaartis@cock.li>
Thu, 15 Aug 2019 09:07:51 +0000 (12:07 +0300)
committerEkaterina Vaartis <vaartis@cock.li>
Wed, 18 Sep 2019 21:16:33 +0000 (00:16 +0300)
test/instance_static/emoji/test_pack_nonshared/nonshared.zip [new file with mode: 0644]
test/instance_static/emoji/test_pack_nonshared/pack.json
test/web/emoji_api_controller_test.exs

diff --git a/test/instance_static/emoji/test_pack_nonshared/nonshared.zip b/test/instance_static/emoji/test_pack_nonshared/nonshared.zip
new file mode 100644 (file)
index 0000000..148446c
Binary files /dev/null and b/test/instance_static/emoji/test_pack_nonshared/nonshared.zip differ
index b49b1efe72229bd6f6e0214d559ec75ae88f0400..b96781f81e095b9aa63518773cb6c717aba014b7 100644 (file)
@@ -4,8 +4,8 @@
         "homepage": "https://pleroma.social",
         "description": "Test description",
 
-        "fallblack-src": "https://example.com",
-        "fallback-src-sha256": "65CDCCBCA9388A68023519F997367783BE69ED42864398CAC568E56F65CE0E75",
+        "fallback-src": "https://nonshared-pack",
+        "fallback-src-sha256": "74409E2674DAA06C072729C6C8426C4CB3B7E0B85ED77792DB7A436E11D76DAF",
 
         "share-files": false
     },
index bf56c1516af35c01d1bb397b6e51b5c363f7649f..aa30e305825c2cddfbc8261185ebcf6059482b27 100644 (file)
@@ -42,9 +42,10 @@ defmodule Pleroma.Web.EmojiAPI.EmojiAPIControllerTest do
     assert Enum.find(arch, fn {n, _} -> n == 'blank.png' end)
   end
 
-  test "downloading a shared pack from another instance via download_from, deleting it" do
+  test "downloading shared & unshared packs from another instance via download_from, deleting them" do
     on_exit(fn ->
       File.rm_rf!("test/instance_static/emoji/test_pack2")
+      File.rm_rf!("test/instance_static/emoji/test_pack_nonshared2")
     end)
 
     mock(fn
@@ -69,6 +70,12 @@ defmodule Pleroma.Web.EmojiAPI.EmojiAPIControllerTest do
         |> get(emoji_api_path(conn, :download_shared, "test_pack"))
         |> response(200)
         |> text()
+
+      %{
+        method: :get,
+        url: "https://nonshared-pack"
+      } ->
+        text(File.read!("test/instance_static/emoji/test_pack_nonshared/nonshared.zip"))
     end)
 
     admin = insert(:user, info: %{is_admin: true})
@@ -101,5 +108,36 @@ defmodule Pleroma.Web.EmojiAPI.EmojiAPIControllerTest do
            |> response(200) == "ok"
 
     refute File.exists?("test/instance_static/emoji/test_pack2")
+
+    # non-shared, downloaded from the fallback URL
+
+    conn = build_conn()
+
+    assert conn
+           |> put_req_header("content-type", "application/json")
+           |> assign(:user, admin)
+           |> post(
+             emoji_api_path(
+               conn,
+               :download_from
+             ),
+             %{
+               instance_address: "https://example.com",
+               pack_name: "test_pack_nonshared",
+               as: "test_pack_nonshared2"
+             }
+             |> Jason.encode!()
+           )
+           |> text_response(200) == "ok"
+
+    assert File.exists?("test/instance_static/emoji/test_pack_nonshared2/pack.json")
+    assert File.exists?("test/instance_static/emoji/test_pack_nonshared2/blank.png")
+
+    assert conn
+           |> assign(:user, admin)
+           |> delete(emoji_api_path(conn, :delete, "test_pack_nonshared2"))
+           |> response(200) == "ok"
+
+    refute File.exists?("test/instance_static/emoji/test_pack_nonshared2")
   end
 end