From 8064c9fc4d28b3452ea70ed605733e9ff45f802b Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Wed, 3 Jan 2024 16:47:48 -0500 Subject: [PATCH] AK: Add unit tests for StringUtils::find_last This method was added without tests. Add some now to ensure future changes do not break it. --- Tests/AK/TestStringUtils.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Tests/AK/TestStringUtils.cpp b/Tests/AK/TestStringUtils.cpp index f0d436e3ef..fea8dbc021 100644 --- a/Tests/AK/TestStringUtils.cpp +++ b/Tests/AK/TestStringUtils.cpp @@ -407,6 +407,25 @@ TEST_CASE(find) EXPECT_EQ(AK::StringUtils::find(test_string, "78"sv).has_value(), false); } +TEST_CASE(find_last) +{ + auto test_string = "abcdabc"sv; + + EXPECT_EQ(AK::StringUtils::find_last(test_string, ""sv), 7u); + EXPECT_EQ(AK::StringUtils::find_last(test_string, "a"sv), 4u); + EXPECT_EQ(AK::StringUtils::find_last(test_string, "b"sv), 5u); + EXPECT_EQ(AK::StringUtils::find_last(test_string, "c"sv), 6u); + EXPECT_EQ(AK::StringUtils::find_last(test_string, "ab"sv), 4u); + EXPECT_EQ(AK::StringUtils::find_last(test_string, "bc"sv), 5u); + EXPECT_EQ(AK::StringUtils::find_last(test_string, "abc"sv), 4u); + EXPECT_EQ(AK::StringUtils::find_last(test_string, "abcd"sv), 0u); + EXPECT_EQ(AK::StringUtils::find_last(test_string, test_string), 0u); + + EXPECT(!AK::StringUtils::find_last(test_string, "1"sv).has_value()); + EXPECT(!AK::StringUtils::find_last(test_string, "e"sv).has_value()); + EXPECT(!AK::StringUtils::find_last(test_string, "abd"sv).has_value()); +} + TEST_CASE(replace_all_overlapping) { // Replace only should take into account non-overlapping instances of the