diff options
Diffstat (limited to 'test/pleroma/emoji_test.exs')
-rw-r--r-- | test/pleroma/emoji_test.exs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/test/pleroma/emoji_test.exs b/test/pleroma/emoji_test.exs new file mode 100644 index 000000000..027a8132f --- /dev/null +++ b/test/pleroma/emoji_test.exs @@ -0,0 +1,57 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.EmojiTest do + use ExUnit.Case, async: true + alias Pleroma.Emoji + + describe "is_unicode_emoji?/1" do + test "tells if a string is an unicode emoji" do + refute Emoji.is_unicode_emoji?("X") + refute Emoji.is_unicode_emoji?("ね") + + # Only accept fully-qualified (RGI) emoji + # See http://www.unicode.org/reports/tr51/ + refute Emoji.is_unicode_emoji?("❤") + refute Emoji.is_unicode_emoji?("☂") + + assert Emoji.is_unicode_emoji?("🥺") + assert Emoji.is_unicode_emoji?("🤰") + assert Emoji.is_unicode_emoji?("❤️") + assert Emoji.is_unicode_emoji?("🏳️⚧️") + + # Additionally, we accept regional indicators. + assert Emoji.is_unicode_emoji?("🇵") + assert Emoji.is_unicode_emoji?("🇴") + assert Emoji.is_unicode_emoji?("🇬") + end + end + + describe "get_all/0" do + setup do + emoji_list = Emoji.get_all() + {:ok, emoji_list: emoji_list} + end + + test "first emoji", %{emoji_list: emoji_list} do + [emoji | _others] = emoji_list + {code, %Emoji{file: path, tags: tags}} = emoji + + assert tuple_size(emoji) == 2 + assert is_binary(code) + assert is_binary(path) + assert is_list(tags) + end + + test "random emoji", %{emoji_list: emoji_list} do + emoji = Enum.random(emoji_list) + {code, %Emoji{file: path, tags: tags}} = emoji + + assert tuple_size(emoji) == 2 + assert is_binary(code) + assert is_binary(path) + assert is_list(tags) + end + end +end |