From 4b87dd5c5c24f7356c24578f0117ff4048737da4 Mon Sep 17 00:00:00 2001 From: Max Wipfli Date: Thu, 1 Jul 2021 20:00:07 +0200 Subject: [PATCH] Tests: Add test for String::find with empty needle This adds a test case for String::find and String::find_all with empty needles. The expected behavior is in line with what the C++ standard library (and other languages standard libraries) expect. --- Tests/AK/TestString.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Tests/AK/TestString.cpp b/Tests/AK/TestString.cpp index 01c6368c58..418027a27b 100644 --- a/Tests/AK/TestString.cpp +++ b/Tests/AK/TestString.cpp @@ -271,3 +271,14 @@ TEST_CASE(find) EXPECT_EQ(a.find('b', 4), Optional { 6 }); EXPECT_EQ(a.find('b', 9), Optional {}); } + +TEST_CASE(find_with_empty_needle) +{ + String string = ""; + EXPECT_EQ(string.find(""sv), 0u); + EXPECT_EQ(string.find_all(""sv), (Vector { 0u })); + + string = "abc"; + EXPECT_EQ(string.find(""sv), 0u); + EXPECT_EQ(string.find_all(""sv), (Vector { 0u, 1u, 2u, 3u })); +}