2019-07-10 14:13:23 +09:00
|
|
|
# Pleroma: A lightweight social networking server
|
2021-01-13 15:49:20 +09:00
|
|
|
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
|
2019-07-10 14:13:23 +09:00
|
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
|
2019-04-01 19:17:57 +09:00
|
|
|
defmodule Pleroma.EmojiTest do
|
2020-12-21 20:21:40 +09:00
|
|
|
use ExUnit.Case, async: true
|
2019-04-01 19:17:57 +09:00
|
|
|
alias Pleroma.Emoji
|
|
|
|
|
2019-09-13 09:11:02 +09:00
|
|
|
describe "is_unicode_emoji?/1" do
|
|
|
|
test "tells if a string is an unicode emoji" do
|
|
|
|
refute Emoji.is_unicode_emoji?("X")
|
2020-12-03 00:15:03 +09:00
|
|
|
refute Emoji.is_unicode_emoji?("ね")
|
|
|
|
|
2020-12-03 00:46:19 +09:00
|
|
|
# Only accept fully-qualified (RGI) emoji
|
|
|
|
# See http://www.unicode.org/reports/tr51/
|
|
|
|
refute Emoji.is_unicode_emoji?("❤")
|
|
|
|
refute Emoji.is_unicode_emoji?("☂")
|
|
|
|
|
2019-09-13 09:11:02 +09:00
|
|
|
assert Emoji.is_unicode_emoji?("🥺")
|
2020-12-03 00:15:03 +09:00
|
|
|
assert Emoji.is_unicode_emoji?("🤰")
|
|
|
|
assert Emoji.is_unicode_emoji?("❤️")
|
2020-12-03 00:18:08 +09:00
|
|
|
assert Emoji.is_unicode_emoji?("🏳️⚧️")
|
2020-12-04 00:17:39 +09:00
|
|
|
|
|
|
|
# Additionally, we accept regional indicators.
|
|
|
|
assert Emoji.is_unicode_emoji?("🇵")
|
|
|
|
assert Emoji.is_unicode_emoji?("🇴")
|
|
|
|
assert Emoji.is_unicode_emoji?("🇬")
|
2019-09-13 09:11:02 +09:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2019-04-01 19:17:57 +09:00
|
|
|
describe "get_all/0" do
|
|
|
|
setup do
|
|
|
|
emoji_list = Emoji.get_all()
|
|
|
|
{:ok, emoji_list: emoji_list}
|
|
|
|
end
|
2019-04-01 19:54:30 +09:00
|
|
|
|
2019-04-01 19:17:57 +09:00
|
|
|
test "first emoji", %{emoji_list: emoji_list} do
|
|
|
|
[emoji | _others] = emoji_list
|
2019-08-31 16:14:53 +09:00
|
|
|
{code, %Emoji{file: path, tags: tags}} = emoji
|
2019-04-01 19:17:57 +09:00
|
|
|
|
2019-08-31 16:14:53 +09:00
|
|
|
assert tuple_size(emoji) == 2
|
2019-04-01 19:17:57 +09:00
|
|
|
assert is_binary(code)
|
|
|
|
assert is_binary(path)
|
2019-04-19 03:17:52 +09:00
|
|
|
assert is_list(tags)
|
2019-04-01 19:17:57 +09:00
|
|
|
end
|
|
|
|
|
|
|
|
test "random emoji", %{emoji_list: emoji_list} do
|
|
|
|
emoji = Enum.random(emoji_list)
|
2019-08-31 16:14:53 +09:00
|
|
|
{code, %Emoji{file: path, tags: tags}} = emoji
|
2019-04-01 19:17:57 +09:00
|
|
|
|
2019-08-31 16:14:53 +09:00
|
|
|
assert tuple_size(emoji) == 2
|
2019-04-01 19:17:57 +09:00
|
|
|
assert is_binary(code)
|
|
|
|
assert is_binary(path)
|
2019-04-19 03:17:52 +09:00
|
|
|
assert is_list(tags)
|
2019-04-01 19:17:57 +09:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|