1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.EmojiTest do
9 describe "is_unicode_emoji?/1" do
10 test "tells if a string is an unicode emoji" do
11 refute Emoji.is_unicode_emoji?("X")
12 refute Emoji.is_unicode_emoji?("ね")
14 # Only accept fully-qualified (RGI) emoji
15 # See http://www.unicode.org/reports/tr51/
16 refute Emoji.is_unicode_emoji?("❤")
17 refute Emoji.is_unicode_emoji?("☂")
19 assert Emoji.is_unicode_emoji?("🥺")
20 assert Emoji.is_unicode_emoji?("🤰")
21 assert Emoji.is_unicode_emoji?("❤️")
22 assert Emoji.is_unicode_emoji?("🏳️⚧️")
26 describe "get_all/0" do
28 emoji_list = Emoji.get_all()
29 {:ok, emoji_list: emoji_list}
32 test "first emoji", %{emoji_list: emoji_list} do
33 [emoji | _others] = emoji_list
34 {code, %Emoji{file: path, tags: tags}} = emoji
36 assert tuple_size(emoji) == 2
37 assert is_binary(code)
38 assert is_binary(path)
42 test "random emoji", %{emoji_list: emoji_list} do
43 emoji = Enum.random(emoji_list)
44 {code, %Emoji{file: path, tags: tags}} = emoji
46 assert tuple_size(emoji) == 2
47 assert is_binary(code)
48 assert is_binary(path)