Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F74273580
emoji_test.exs
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
6 KB
Referenced Files
None
Subscribers
None
emoji_test.exs
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Mix.Tasks.Pleroma.EmojiTest
do
use
ExUnit.Case
,
async
:
true
import
ExUnit.CaptureIO
import
Tesla.Mock
alias
Mix.Tasks.Pleroma.Emoji
describe
"ls-packs"
do
test
"with default manifest as url"
do
mock
(
fn
%{
method
:
:get
,
url
:
"https://git.pleroma.social/pleroma/emoji-index/raw/master/index.json"
}
->
%
Tesla.Env
{
status
:
200
,
body
:
File
.
read!
(
"test/fixtures/emoji/packs/default-manifest.json"
)
}
end
)
capture_io
(
fn
->
Emoji
.
run
([
"ls-packs"
])
end
)
=~
"https://finland.fi/wp-content/uploads/2017/06/finland-emojis.zip"
end
test
"with passed manifest as file"
do
capture_io
(
fn
->
Emoji
.
run
([
"ls-packs"
,
"-m"
,
"test/fixtures/emoji/packs/manifest.json"
])
end
)
=~
"https://git.pleroma.social/pleroma/emoji-index/raw/master/packs/blobs_gg.zip"
end
end
describe
"get-packs"
do
test
"download pack from default manifest"
do
mock
(
fn
%{
method
:
:get
,
url
:
"https://git.pleroma.social/pleroma/emoji-index/raw/master/index.json"
}
->
%
Tesla.Env
{
status
:
200
,
body
:
File
.
read!
(
"test/fixtures/emoji/packs/default-manifest.json"
)
}
%{
method
:
:get
,
url
:
"https://finland.fi/wp-content/uploads/2017/06/finland-emojis.zip"
}
->
%
Tesla.Env
{
status
:
200
,
body
:
File
.
read!
(
"test/fixtures/emoji/packs/blank.png.zip"
)
}
%{
method
:
:get
,
url
:
"https://git.pleroma.social/pleroma/emoji-index/raw/master/finmoji.json"
}
->
%
Tesla.Env
{
status
:
200
,
body
:
File
.
read!
(
"test/fixtures/emoji/packs/finmoji.json"
)
}
end
)
assert
capture_io
(
fn
->
Emoji
.
run
([
"get-packs"
,
"finmoji"
])
end
)
=~
"Writing pack.json for"
emoji_path
=
Path
.
join
(
Pleroma.Config
.
get!
([
:instance
,
:static_dir
]),
"emoji"
)
assert
File
.
exists?
(
Path
.
join
([
emoji_path
,
"finmoji"
,
"pack.json"
]))
on_exit
(
fn
->
File
.
rm_rf!
(
"test/instance_static/emoji/finmoji"
)
end
)
end
test
"install local emoji pack"
do
assert
capture_io
(
fn
->
Emoji
.
run
([
"get-packs"
,
"local"
,
"--manifest"
,
"test/instance_static/local_pack/manifest.json"
])
end
)
=~
"Writing pack.json for"
on_exit
(
fn
->
File
.
rm_rf!
(
"test/instance_static/emoji/local"
)
end
)
end
test
"pack not found"
do
mock
(
fn
%{
method
:
:get
,
url
:
"https://git.pleroma.social/pleroma/emoji-index/raw/master/index.json"
}
->
%
Tesla.Env
{
status
:
200
,
body
:
File
.
read!
(
"test/fixtures/emoji/packs/default-manifest.json"
)
}
end
)
assert
capture_io
(
fn
->
Emoji
.
run
([
"get-packs"
,
"not_found"
])
end
)
=~
"No pack named \"not_found\" found"
end
test
"raise on bad sha256"
do
mock
(
fn
%{
method
:
:get
,
url
:
"https://git.pleroma.social/pleroma/emoji-index/raw/master/packs/blobs_gg.zip"
}
->
%
Tesla.Env
{
status
:
200
,
body
:
File
.
read!
(
"test/fixtures/emoji/packs/blank.png.zip"
)
}
end
)
assert_raise
RuntimeError
,
~r/^Bad SHA256 for blobs.gg/
,
fn
->
capture_io
(
fn
->
Emoji
.
run
([
"get-packs"
,
"blobs.gg"
,
"-m"
,
"test/fixtures/emoji/packs/manifest.json"
])
end
)
end
end
end
describe
"gen-pack"
do
setup
do
url
=
"https://finland.fi/wp-content/uploads/2017/06/finland-emojis.zip"
mock
(
fn
%{
method
:
:get
,
url
:
^
url
}
->
%
Tesla.Env
{
status
:
200
,
body
:
File
.
read!
(
"test/fixtures/emoji/packs/blank.png.zip"
)}
end
)
{
:ok
,
url
:
url
}
end
test
"with default extensions"
,
%{
url
:
url
}
do
name
=
"pack1"
pack_json
=
"
#{
name
}
.json"
files_json
=
"
#{
name
}
_file.json"
refute
File
.
exists?
(
pack_json
)
refute
File
.
exists?
(
files_json
)
captured
=
capture_io
(
fn
->
Emoji
.
run
([
"gen-pack"
,
url
,
"--name"
,
name
,
"--license"
,
"license"
,
"--homepage"
,
"homepage"
,
"--description"
,
"description"
,
"--files"
,
files_json
,
"--extensions"
,
".png .gif"
])
end
)
assert
captured
=~
"
#{
pack_json
}
has been created with the pack1 pack"
assert
captured
=~
"Using .png .gif extensions"
assert
File
.
exists?
(
pack_json
)
assert
File
.
exists?
(
files_json
)
on_exit
(
fn
->
File
.
rm!
(
pack_json
)
File
.
rm!
(
files_json
)
end
)
end
test
"with custom extensions and update existing files"
,
%{
url
:
url
}
do
name
=
"pack2"
pack_json
=
"
#{
name
}
.json"
files_json
=
"
#{
name
}
_file.json"
refute
File
.
exists?
(
pack_json
)
refute
File
.
exists?
(
files_json
)
captured
=
capture_io
(
fn
->
Emoji
.
run
([
"gen-pack"
,
url
,
"--name"
,
name
,
"--license"
,
"license"
,
"--homepage"
,
"homepage"
,
"--description"
,
"description"
,
"--files"
,
files_json
,
"--extensions"
,
" .png .gif .jpeg "
])
end
)
assert
captured
=~
"
#{
pack_json
}
has been created with the pack2 pack"
assert
captured
=~
"Using .png .gif .jpeg extensions"
assert
File
.
exists?
(
pack_json
)
assert
File
.
exists?
(
files_json
)
captured
=
capture_io
(
fn
->
Emoji
.
run
([
"gen-pack"
,
url
,
"--name"
,
name
,
"--license"
,
"license"
,
"--homepage"
,
"homepage"
,
"--description"
,
"description"
,
"--files"
,
files_json
,
"--extensions"
,
" .png .gif .jpeg "
])
end
)
assert
captured
=~
"
#{
pack_json
}
has been updated with the pack2 pack"
on_exit
(
fn
->
File
.
rm!
(
pack_json
)
File
.
rm!
(
files_json
)
end
)
end
end
end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 25, 8:21 AM (1 d, 10 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1287664
Default Alt Text
emoji_test.exs (6 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment