diff options
Diffstat (limited to 'protocols/Telegram/tdlib/td/tdutils/test/emoji.cpp')
-rw-r--r-- | protocols/Telegram/tdlib/td/tdutils/test/emoji.cpp | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/protocols/Telegram/tdlib/td/tdutils/test/emoji.cpp b/protocols/Telegram/tdlib/td/tdutils/test/emoji.cpp index c8e6539a99..0efb17429b 100644 --- a/protocols/Telegram/tdlib/td/tdutils/test/emoji.cpp +++ b/protocols/Telegram/tdlib/td/tdutils/test/emoji.cpp @@ -1,18 +1,22 @@ // -// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2022 +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023 // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // +#include "td/utils/common.h" #include "td/utils/emoji.h" #include "td/utils/tests.h" TEST(Emoji, is_emoji) { ASSERT_TRUE(!td::is_emoji("")); ASSERT_TRUE(td::is_emoji("đŠđŧââ¤âđâđŠđģ")); + ASSERT_TRUE(td::is_emoji("đŠđŧââ¤âđâđŠđģī¸")); // not in RGI emoji ZWJ sequence set ASSERT_TRUE(td::is_emoji("đŠđŧââ¤ī¸âđâđŠđģ")); + ASSERT_TRUE(td::is_emoji("đŠđŧââ¤ī¸âđâđŠđģī¸")); ASSERT_TRUE(!td::is_emoji("đŠđŧââ¤ī¸ī¸âđâđŠđģ")); ASSERT_TRUE(td::is_emoji("â")); + ASSERT_TRUE(td::is_emoji("âī¸")); ASSERT_TRUE(td::is_emoji("â")); ASSERT_TRUE(td::is_emoji("đĒ")); ASSERT_TRUE(td::is_emoji("2ī¸âŖ")); @@ -27,6 +31,21 @@ TEST(Emoji, is_emoji) { ASSERT_TRUE(td::is_emoji("â")); ASSERT_TRUE(td::is_emoji("đ")); ASSERT_TRUE(td::is_emoji("đ§âđ")); + ASSERT_TRUE(td::is_emoji("Šī¸")); + ASSERT_TRUE(td::is_emoji("Š")); + ASSERT_TRUE(!td::is_emoji("Šī¸ī¸")); + ASSERT_TRUE(td::is_emoji("đĩī¸ââī¸")); + ASSERT_TRUE(td::is_emoji("đĩââī¸")); // not in RGI emoji ZWJ sequence set + ASSERT_TRUE(td::is_emoji("đĩī¸ââ")); // not in RGI emoji ZWJ sequence set + ASSERT_TRUE(td::is_emoji("đĩââ")); + ASSERT_TRUE(td::is_emoji("đī¸ââī¸")); + ASSERT_TRUE(td::is_emoji("đī¸ââī¸")); + ASSERT_TRUE(td::is_emoji("đââī¸")); // not in RGI emoji ZWJ sequence set + ASSERT_TRUE(td::is_emoji("đââī¸")); // not in RGI emoji ZWJ sequence set + ASSERT_TRUE(!td::is_emoji("aâđ¤âđ¨")); + ASSERT_TRUE(!td::is_emoji("đŠâaâđ¨")); + ASSERT_TRUE(!td::is_emoji("đŠâđ¤âa")); + ASSERT_TRUE(td::is_emoji("đŠâđ¤âđ¨")); // not in RGI emoji ZWJ sequence set } static void test_get_fitzpatrick_modifier(td::string emoji, int result) { @@ -60,17 +79,18 @@ TEST(Emoji, get_fitzpatrick_modifier) { test_get_fitzpatrick_modifier("đ§âđ", 0); } -static void test_remove_emoji_modifiers(td::string emoji, const td::string &result) { - ASSERT_STREQ(result, td::remove_emoji_modifiers(emoji)); - td::remove_emoji_modifiers_in_place(emoji); +static void test_remove_emoji_modifiers(td::string emoji, const td::string &result, bool remove_selectors = true) { + ASSERT_STREQ(result, td::remove_emoji_modifiers(emoji, remove_selectors)); + td::remove_emoji_modifiers_in_place(emoji, remove_selectors); ASSERT_STREQ(result, emoji); - ASSERT_STREQ(emoji, td::remove_emoji_modifiers(emoji)); + ASSERT_STREQ(emoji, td::remove_emoji_modifiers(emoji, remove_selectors)); } TEST(Emoji, remove_emoji_modifiers) { test_remove_emoji_modifiers("", ""); test_remove_emoji_modifiers("đŠđŧââ¤âđâđŠđģ", "đŠââ¤âđâđŠ"); test_remove_emoji_modifiers("đŠđŧââ¤ī¸âđâđŠđģ", "đŠââ¤âđâđŠ"); + test_remove_emoji_modifiers("đŠđŧââ¤ī¸âđâđŠđģ", "đŠââ¤ī¸âđâđŠ", false); test_remove_emoji_modifiers("đđģ", "đ"); test_remove_emoji_modifiers("đđŧ", "đ"); test_remove_emoji_modifiers("đđŊ", "đ"); |