mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 18:17:44 +00:00
AK: Make String::contains(code_point) handle non-ASCII
We currently only accept a char, instead of a full code point.
This commit is contained in:
parent
f882581e91
commit
515fca4f7a
3 changed files with 50 additions and 3 deletions
|
@ -712,6 +712,52 @@ TEST_CASE(trim)
|
|||
}
|
||||
}
|
||||
|
||||
TEST_CASE(contains)
|
||||
{
|
||||
EXPECT(!String {}.contains({}));
|
||||
EXPECT(!String {}.contains(" "sv));
|
||||
EXPECT(!String {}.contains(0));
|
||||
|
||||
EXPECT("a"_short_string.contains("a"sv));
|
||||
EXPECT(!"a"_short_string.contains({}));
|
||||
EXPECT(!"a"_short_string.contains("b"sv));
|
||||
EXPECT(!"a"_short_string.contains("ab"sv));
|
||||
|
||||
EXPECT("a"_short_string.contains(0x0061));
|
||||
EXPECT(!"a"_short_string.contains(0x0062));
|
||||
|
||||
EXPECT("abc"_short_string.contains("a"sv));
|
||||
EXPECT("abc"_short_string.contains("b"sv));
|
||||
EXPECT("abc"_short_string.contains("c"sv));
|
||||
EXPECT("abc"_short_string.contains("ab"sv));
|
||||
EXPECT("abc"_short_string.contains("bc"sv));
|
||||
EXPECT("abc"_short_string.contains("abc"sv));
|
||||
EXPECT(!"abc"_short_string.contains({}));
|
||||
EXPECT(!"abc"_short_string.contains("ac"sv));
|
||||
EXPECT(!"abc"_short_string.contains("abcd"sv));
|
||||
|
||||
EXPECT("abc"_short_string.contains(0x0061));
|
||||
EXPECT("abc"_short_string.contains(0x0062));
|
||||
EXPECT("abc"_short_string.contains(0x0063));
|
||||
EXPECT(!"abc"_short_string.contains(0x0064));
|
||||
|
||||
auto emoji = MUST("😀"_string);
|
||||
EXPECT(emoji.contains("\xF0"sv));
|
||||
EXPECT(emoji.contains("\x9F"sv));
|
||||
EXPECT(emoji.contains("\x98"sv));
|
||||
EXPECT(emoji.contains("\x80"sv));
|
||||
EXPECT(emoji.contains("\xF0\x9F"sv));
|
||||
EXPECT(emoji.contains("\xF0\x9F\x98"sv));
|
||||
EXPECT(emoji.contains("\xF0\x9F\x98\x80"sv));
|
||||
EXPECT(emoji.contains("\x9F\x98\x80"sv));
|
||||
EXPECT(emoji.contains("\x98\x80"sv));
|
||||
EXPECT(!emoji.contains("a"sv));
|
||||
EXPECT(!emoji.contains("🙃"sv));
|
||||
|
||||
EXPECT(emoji.contains(0x1F600));
|
||||
EXPECT(!emoji.contains(0x1F643));
|
||||
}
|
||||
|
||||
TEST_CASE(starts_with)
|
||||
{
|
||||
EXPECT(String {}.starts_with_bytes({}));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue