parent
0922791e4d
commit
14ec12ac95
@ -0,0 +1,93 @@
|
||||
# Pleroma: A lightweight social networking server
|
||||
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
defmodule Pleroma.Emoji.PackTest do
|
||||
use ExUnit.Case, async: true
|
||||
alias Pleroma.Emoji.Pack
|
||||
|
||||
@emoji_path Path.join(
|
||||
Pleroma.Config.get!([:instance, :static_dir]),
|
||||
"emoji"
|
||||
)
|
||||
|
||||
setup do
|
||||
pack_path = Path.join(@emoji_path, "dump_pack")
|
||||
File.mkdir(pack_path)
|
||||
|
||||
File.write!(Path.join(pack_path, "pack.json"), """
|
||||
{
|
||||
"files": { },
|
||||
"pack": {
|
||||
"description": "Dump pack", "homepage": "https://pleroma.social",
|
||||
"license": "Test license", "share-files": true
|
||||
}}
|
||||
""")
|
||||
|
||||
{:ok, pack} = Pleroma.Emoji.Pack.load_pack("dump_pack")
|
||||
|
||||
on_exit(fn ->
|
||||
File.rm_rf!(pack_path)
|
||||
end)
|
||||
|
||||
{:ok, pack: pack}
|
||||
end
|
||||
|
||||
describe "add_file/4" do
|
||||
test "add emojies from zip file", %{pack: pack} do
|
||||
file = %Plug.Upload{
|
||||
content_type: "application/zip",
|
||||
filename: "finland-emojis.zip",
|
||||
path: Path.absname("test/fixtures/finland-emojis.zip")
|
||||
}
|
||||
|
||||
{:ok, updated_pack} = Pack.add_file(pack, nil, nil, file)
|
||||
|
||||
assert updated_pack.files == %{
|
||||
"a_trusted_friend-128" => "128px/a_trusted_friend-128.png",
|
||||
"auroraborealis" => "auroraborealis.png",
|
||||
"baby_in_a_box" => "1000px/baby_in_a_box.png",
|
||||
"bear" => "1000px/bear.png",
|
||||
"bear-128" => "128px/bear-128.png"
|
||||
}
|
||||
|
||||
assert updated_pack.files_count == 5
|
||||
end
|
||||
end
|
||||
|
||||
test "returns error when zip file is bad", %{pack: pack} do
|
||||
file = %Plug.Upload{
|
||||
content_type: "application/zip",
|
||||
filename: "finland-emojis.zip",
|
||||
path: Path.absname("test/instance_static/emoji/test_pack/blank.png")
|
||||
}
|
||||
|
||||
assert Pack.add_file(pack, nil, nil, file) == {:error, :einval}
|
||||
end
|
||||
|
||||
test "returns pack when zip file is empty", %{pack: pack} do
|
||||
file = %Plug.Upload{
|
||||
content_type: "application/zip",
|
||||
filename: "finland-emojis.zip",
|
||||
path: Path.absname("test/fixtures/empty.zip")
|
||||
}
|
||||
|
||||
{:ok, updated_pack} = Pack.add_file(pack, nil, nil, file)
|
||||
assert updated_pack == pack
|
||||
end
|
||||
|
||||
test "add emoji file", %{pack: pack} do
|
||||
file = %Plug.Upload{
|
||||
filename: "blank.png",
|
||||
path: "#{@emoji_path}/test_pack/blank.png"
|
||||
}
|
||||
|
||||
{:ok, updated_pack} = Pack.add_file(pack, "test_blank", "test_blank.png", file)
|
||||
|
||||
assert updated_pack.files == %{
|
||||
"test_blank" => "test_blank.png"
|
||||
}
|
||||
|
||||
assert updated_pack.files_count == 1
|
||||
end
|
||||
end
|
Binary file not shown.
@ -0,0 +1,15 @@
|
||||
# Pleroma: A lightweight social networking server
|
||||
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
defmodule Pleroma.UtilsTest do
|
||||
use ExUnit.Case, async: true
|
||||
|
||||
describe "tmp_dir/1" do
|
||||
test "returns unique temporary directory" do
|
||||
{:ok, path} = Pleroma.Utils.tmp_dir("emoji")
|
||||
assert path =~ ~r/\/tmp\/emoji-(.*)-#{:os.getpid()}-(.*)/
|
||||
File.rm_rf(path)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in new issue