aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/message_entities.cpp
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2024-10-11 17:32:06 +0300
committerlevlam <levlam@telegram.org>2024-10-11 17:32:06 +0300
commitfa356bee5f5ccef88121b5c92fadddce07400f7f (patch)
tree3a5d1fc4b5cf2c9f45692c1148fb3d8e91f68ec9 /test/message_entities.cpp
parenta4cdfa2311f69179552946026f65d2400fa020f2 (diff)
Support hashtags and cashtags with username.
Diffstat (limited to 'test/message_entities.cpp')
-rw-r--r--test/message_entities.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/message_entities.cpp b/test/message_entities.cpp
index 64cd7dcca..920991b28 100644
--- a/test/message_entities.cpp
+++ b/test/message_entities.cpp
@@ -112,6 +112,13 @@ TEST(MessageEntities, hashtag) {
check_hashtag(" #" + td::string(255, '1') + "a" + td::string(255, 'b') + "# ", {});
check_hashtag("#a#b #c #d", {"#c", "#d"});
check_hashtag("#test", {"#test"});
+ check_hashtag("#test@", {"#test"});
+ check_hashtag("#test@a", {"#test"});
+ check_hashtag("#test@ab", {"#test"});
+ check_hashtag("#test@abc", {"#test@abc"});
+ check_hashtag("#test@a-c", {"#test"});
+ check_hashtag("#test@abcdefghijabcdefghijabcdefghijab", {"#test@abcdefghijabcdefghijabcdefghijab"});
+ check_hashtag("#test@abcdefghijabcdefghijabcdefghijabc", {"#test@abcdefghijabcdefghijabcdefghijab"});
check_hashtag("#te·st", {"#te·st"});
check_hashtag(u8"\U0001F604\U0001F604\U0001F604\U0001F604 \U0001F604\U0001F604\U0001F604#" + td::string(200, '1') +
"ООО" + td::string(200, '2'),
@@ -119,6 +126,13 @@ TEST(MessageEntities, hashtag) {
check_hashtag(u8"#a\u2122", {"#a"});
check_hashtag("#a൹", {"#a"});
check_hashtag("#aඁං෴ก฿", {"#aඁං෴ก"});
+ check_hashtag(
+ "#a12345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234"
+ "5612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234"
+ "5612345678901234561234567890123456",
+ {"#a1234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123"
+ "456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012"
+ "34561234567890123456123456789012345"});
}
static void check_cashtag(const td::string &str, const td::vector<td::string> &expected) {
@@ -169,6 +183,13 @@ TEST(MessageEntities, cashtag) {
check_cashtag(" А$ABC ", {});
check_cashtag("$ABC$DEF $GHI $KLM", {"$GHI", "$KLM"});
check_cashtag("$TEST", {"$TEST"});
+ check_cashtag("$TEST@", {"$TEST"});
+ check_cashtag("$TEST@a", {"$TEST"});
+ check_cashtag("$TEST@ab", {"$TEST"});
+ check_cashtag("$TEST@abc", {"$TEST@abc"});
+ check_cashtag("$TEST@a-c", {"$TEST"});
+ check_cashtag("$TEST@abcdefghijabcdefghijabcdefghijab", {"$TEST@abcdefghijabcdefghijabcdefghijab"});
+ check_cashtag("$TEST@abcdefghijabcdefghijabcdefghijabc", {"$TEST"});
check_cashtag("$1INC", {});
check_cashtag("$1INCH", {"$1INCH"});
check_cashtag("...$1INCH...", {"$1INCH"});