2019-07-10 07:13:23 +02:00
|
|
|
# Pleroma: A lightweight social networking server
|
2020-03-03 23:44:49 +01:00
|
|
|
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
|
2019-07-10 07:13:23 +02:00
|
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
|
2019-04-01 12:17:57 +02:00
|
|
|
defmodule Pleroma.EmojiTest do
|
2020-09-24 11:00:39 +02:00
|
|
|
use ExUnit.Case
|
2019-04-01 12:17:57 +02:00
|
|
|
alias Pleroma.Emoji
|
|
|
|
|
2019-09-13 02:11:02 +02: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-02 16:15:03 +01:00
|
|
|
refute Emoji.is_unicode_emoji?("ね")
|
|
|
|
|
2020-12-02 16:46:19 +01: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 02:11:02 +02:00
|
|
|
assert Emoji.is_unicode_emoji?("🥺")
|
2020-12-02 16:15:03 +01:00
|
|
|
assert Emoji.is_unicode_emoji?("🤰")
|
|
|
|
assert Emoji.is_unicode_emoji?("❤️")
|
2020-12-02 16:18:08 +01:00
|
|
|
assert Emoji.is_unicode_emoji?("🏳️⚧️")
|
2020-12-03 16:17:39 +01:00
|
|
|
|
|
|
|
# Additionally, we accept regional indicators.
|
|
|
|
assert Emoji.is_unicode_emoji?("🇵")
|
|
|
|
assert Emoji.is_unicode_emoji?("🇴")
|
|
|
|
assert Emoji.is_unicode_emoji?("🇬")
|
2019-09-13 02:11:02 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2019-04-01 12:17:57 +02:00
|
|
|
describe "get_all/0" do
|
|
|
|
setup do
|
|
|
|
emoji_list = Emoji.get_all()
|
|
|
|
{:ok, emoji_list: emoji_list}
|
|
|
|
end
|
2019-04-01 12:54:30 +02:00
|
|
|
|
2019-04-01 12:17:57 +02:00
|
|
|
test "first emoji", %{emoji_list: emoji_list} do
|
|
|
|
[emoji | _others] = emoji_list
|
2019-08-31 09:14:53 +02:00
|
|
|
{code, %Emoji{file: path, tags: tags}} = emoji
|
2019-04-01 12:17:57 +02:00
|
|
|
|
2019-08-31 09:14:53 +02:00
|
|
|
assert tuple_size(emoji) == 2
|
2019-04-01 12:17:57 +02:00
|
|
|
assert is_binary(code)
|
|
|
|
assert is_binary(path)
|
2019-04-18 20:17:52 +02:00
|
|
|
assert is_list(tags)
|
2019-04-01 12:17:57 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
test "random emoji", %{emoji_list: emoji_list} do
|
|
|
|
emoji = Enum.random(emoji_list)
|
2019-08-31 09:14:53 +02:00
|
|
|
{code, %Emoji{file: path, tags: tags}} = emoji
|
2019-04-01 12:17:57 +02:00
|
|
|
|
2019-08-31 09:14:53 +02:00
|
|
|
assert tuple_size(emoji) == 2
|
2019-04-01 12:17:57 +02:00
|
|
|
assert is_binary(code)
|
|
|
|
assert is_binary(path)
|
2019-04-18 20:17:52 +02:00
|
|
|
assert is_list(tags)
|
2019-04-01 12:17:57 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|