test: enhance hashtag span tests for better coverage and edge cases
This commit is contained in:
1 parent
8c31d759b5
commit
6cbc9892cb
1 file changed
+36
-1
+36
-1
@@ -5,8 +5,43 @@
|
||||
#include <string>
|
||||
|
||||
#include "ui-touch/Utf8Text.h"
|
||||
#include "ui-touch/ChatHashtag.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
int start, end;
|
||||
const char tags[] = "Try #caf\xC3\xA8 and #cr\xC3\xA8me-br\xC3\xBBl\xC3\xA9"
|
||||
"e!";
|
||||
assert(ChatHashtag::span(tags, 0, &start, &end));
|
||||
assert(std::string(tags + start, end - start) == "#caf\xC3\xA8");
|
||||
assert(ChatHashtag::span(tags, end, &start, &end));
|
||||
assert(std::string(tags + start, end - start) == "#cr\xC3\xA8me-br\xC3\xBBl\xC3\xA9"
|
||||
"e");
|
||||
assert(!ChatHashtag::span(tags, end, &start, &end));
|
||||
const char decomposed[] = "#cafe\xCC\x80";
|
||||
assert(ChatHashtag::span(decomposed, 0, &start, &end));
|
||||
assert(end == (int)strlen(decomposed));
|
||||
assert(!ChatHashtag::span("@[#caf\xC3\xA8]", 0, &start, &end));
|
||||
assert(!ChatHashtag::span("https://example.org/#caf\xC3\xA8", 0, &start, &end));
|
||||
assert(!ChatHashtag::span("caf\xC3\xA8#tag", 0, &start, &end));
|
||||
assert(!ChatHashtag::span("#caf\xC3", 0, &start, &end));
|
||||
assert(!ChatHashtag::span("#1", 0, &start, &end));
|
||||
assert(!ChatHashtag::span("#1channel", 0, &start, &end));
|
||||
assert(ChatHashtag::span("#channel1", 0, &start, &end));
|
||||
assert(!ChatHashtag::span("#FFF", 0, &start, &end));
|
||||
assert(!ChatHashtag::span("#FFFF", 0, &start, &end));
|
||||
assert(!ChatHashtag::span("#FFFFFF", 0, &start, &end));
|
||||
assert(!ChatHashtag::span("#FF0000", 0, &start, &end));
|
||||
assert(!ChatHashtag::span("#FFFFFFFF", 0, &start, &end));
|
||||
assert(ChatHashtag::span("#cable", 0, &start, &end));
|
||||
std::string long_tag = "#";
|
||||
for (int count = 0; count < 15; ++count)
|
||||
long_tag += "\xC3\xA8";
|
||||
assert(ChatHashtag::span(long_tag.c_str(), 0, &start, &end));
|
||||
assert(end == 31);
|
||||
long_tag += "\xC3\xA8";
|
||||
assert(!ChatHashtag::span(long_tag.c_str(), 0, &start, &end));
|
||||
|
||||
int main() {
|
||||
const char full[] = "Ouderkerk\xE2\x98\x80\xEF\xB8\x8F";
|
||||
assert(strlen(full) == 15);
|
||||
assert(Utf8Text::valid(full, strlen(full)));
|
||||
|
||||
Reference in new issue
Block a user