aboutsummaryrefslogtreecommitdiff
path: root/test/pleroma/emoji_test.exs
diff options
context:
space:
mode:
Diffstat (limited to 'test/pleroma/emoji_test.exs')
-rw-r--r--test/pleroma/emoji_test.exs57
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