logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

emoji_test.exs (1609B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.EmojiTest do
  5. use ExUnit.Case, async: true
  6. alias Pleroma.Emoji
  7. describe "unicode?/1" do
  8. test "tells if a string is an unicode emoji" do
  9. refute Emoji.unicode?("X")
  10. refute Emoji.unicode?("ね")
  11. # Only accept fully-qualified (RGI) emoji
  12. # See http://www.unicode.org/reports/tr51/
  13. refute Emoji.unicode?("❤")
  14. refute Emoji.unicode?("☂")
  15. assert Emoji.unicode?("🥺")
  16. assert Emoji.unicode?("🤰")
  17. assert Emoji.unicode?("❤️")
  18. assert Emoji.unicode?("🏳️‍⚧️")
  19. assert Emoji.unicode?("🫵")
  20. # Additionally, we accept regional indicators.
  21. assert Emoji.unicode?("🇵")
  22. assert Emoji.unicode?("🇴")
  23. assert Emoji.unicode?("🇬")
  24. end
  25. end
  26. describe "get_all/0" do
  27. setup do
  28. emoji_list = Emoji.get_all()
  29. {:ok, emoji_list: emoji_list}
  30. end
  31. test "first emoji", %{emoji_list: emoji_list} do
  32. [emoji | _others] = emoji_list
  33. {code, %Emoji{file: path, tags: tags}} = emoji
  34. assert tuple_size(emoji) == 2
  35. assert is_binary(code)
  36. assert is_binary(path)
  37. assert is_list(tags)
  38. end
  39. test "random emoji", %{emoji_list: emoji_list} do
  40. emoji = Enum.random(emoji_list)
  41. {code, %Emoji{file: path, tags: tags}} = emoji
  42. assert tuple_size(emoji) == 2
  43. assert is_binary(code)
  44. assert is_binary(path)
  45. assert is_list(tags)
  46. end
  47. end
  48. end