1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 05:27:43 +00:00

AK: Make String::substring() return non-null for 0-length strings

This also makes String::split() give non-null strings when keep_empty is
true.
This commit is contained in:
Peter Elliott 2020-07-25 21:09:33 -06:00 committed by Andreas Kling
parent 9dcbb263f1
commit e57a432118
2 changed files with 26 additions and 1 deletions

View file

@ -188,6 +188,16 @@ TEST_CASE(replace)
EXPECT(test_string == "111._.|||._.|||");
}
TEST_CASE(substring)
{
String test = "abcdef";
EXPECT_EQ(test.substring(0, 6), test);
EXPECT_EQ(test.substring(0, 3), "abc");
EXPECT_EQ(test.substring(3, 3), "def");
EXPECT_EQ(test.substring(3, 0), "");
EXPECT_EQ(test.substring(6, 0), "");
}
TEST_CASE(split)
{
String test = "foo bar baz";
@ -200,6 +210,21 @@ TEST_CASE(split)
EXPECT_EQ(parts[0].characters()[3], '\0');
EXPECT_EQ(parts[1].characters()[3], '\0');
EXPECT_EQ(parts[2].characters()[3], '\0');
test = "a b";
parts = test.split(' ');
EXPECT_EQ(parts.size(), 2u);
EXPECT_EQ(parts[0], "a");
EXPECT_EQ(parts[1], "b");
parts = test.split(' ', true);
EXPECT_EQ(parts.size(), 5u);
EXPECT_EQ(parts[0], "a");
EXPECT_EQ(parts[1], "");
EXPECT_EQ(parts[2], "");
EXPECT_EQ(parts[3], "");
EXPECT_EQ(parts[4], "b");
}
TEST_CASE(builder_zero_initial_capacity)