Index: third_party/WebKit/Source/wtf/text/WTFStringTest.cpp |
diff --git a/third_party/WebKit/Source/wtf/text/WTFStringTest.cpp b/third_party/WebKit/Source/wtf/text/WTFStringTest.cpp |
index 466505abfa65a62f20cecfc7cd918b3c53b9077d..8177e94c7efa7262a037198be5f7ca6ede459b1c 100644 |
--- a/third_party/WebKit/Source/wtf/text/WTFStringTest.cpp |
+++ b/third_party/WebKit/Source/wtf/text/WTFStringTest.cpp |
@@ -320,23 +320,78 @@ TEST(StringTest, ToLowerLocale) |
} |
} |
-TEST(WTF, StartsWithIgnoringASCIICase) |
+TEST(StringTest, StartsWithIgnoringASCIICase) |
{ |
String allASCII("LINK"); |
String allASCIILowerCase("link"); |
- EXPECT_TRUE(startsWithIgnoringASCIICase(allASCII, allASCIILowerCase)); |
+ EXPECT_TRUE(allASCII.startsWith(allASCIILowerCase, TextCaseASCIIInsensitive)); |
String allASCIIMixedCase("lInK"); |
- EXPECT_TRUE(startsWithIgnoringASCIICase(allASCII, allASCIIMixedCase)); |
+ EXPECT_TRUE(allASCII.startsWith(allASCIIMixedCase, TextCaseASCIIInsensitive)); |
String allASCIIDifferent("foo"); |
- EXPECT_FALSE(startsWithIgnoringASCIICase(allASCII, allASCIIDifferent)); |
+ EXPECT_FALSE(allASCII.startsWith(allASCIIDifferent, TextCaseASCIIInsensitive)); |
String nonASCII = String::fromUTF8("LIN\xE2\x84\xAA"); |
- EXPECT_FALSE(startsWithIgnoringASCIICase(allASCII, nonASCII)); |
- EXPECT_TRUE(startsWithIgnoringASCIICase(allASCII, nonASCII.lower())); |
+ EXPECT_FALSE(allASCII.startsWith(nonASCII, TextCaseASCIIInsensitive)); |
+ EXPECT_TRUE(allASCII.startsWith(nonASCII.lower(), TextCaseASCIIInsensitive)); |
- EXPECT_FALSE(startsWithIgnoringASCIICase(nonASCII, allASCII)); |
- EXPECT_FALSE(startsWithIgnoringASCIICase(nonASCII, allASCIILowerCase)); |
- EXPECT_FALSE(startsWithIgnoringASCIICase(nonASCII, allASCIIMixedCase)); |
- EXPECT_FALSE(startsWithIgnoringASCIICase(nonASCII, allASCIIDifferent)); |
+ EXPECT_FALSE(nonASCII.startsWith(allASCII, TextCaseASCIIInsensitive)); |
+ EXPECT_FALSE(nonASCII.startsWith(allASCIILowerCase, TextCaseASCIIInsensitive)); |
+ EXPECT_FALSE(nonASCII.startsWith(allASCIIMixedCase, TextCaseASCIIInsensitive)); |
+ EXPECT_FALSE(nonASCII.startsWith(allASCIIDifferent, TextCaseASCIIInsensitive)); |
+} |
+ |
+TEST(StringTest, EndsWithIgnoringASCIICase) |
+{ |
+ String allASCII("LINK"); |
+ String allASCIILowerCase("link"); |
+ EXPECT_TRUE(allASCII.endsWith(allASCIILowerCase, TextCaseASCIIInsensitive)); |
+ String allASCIIMixedCase("lInK"); |
+ EXPECT_TRUE(allASCII.endsWith(allASCIIMixedCase, TextCaseASCIIInsensitive)); |
+ String allASCIIDifferent("foo"); |
+ EXPECT_FALSE(allASCII.endsWith(allASCIIDifferent, TextCaseASCIIInsensitive)); |
+ String nonASCII = String::fromUTF8("LIN\xE2\x84\xAA"); |
+ EXPECT_FALSE(allASCII.endsWith(nonASCII, TextCaseASCIIInsensitive)); |
+ EXPECT_TRUE(allASCII.endsWith(nonASCII.lower(), TextCaseASCIIInsensitive)); |
+ |
+ EXPECT_FALSE(nonASCII.endsWith(allASCII, TextCaseASCIIInsensitive)); |
+ EXPECT_FALSE(nonASCII.endsWith(allASCIILowerCase, TextCaseASCIIInsensitive)); |
+ EXPECT_FALSE(nonASCII.endsWith(allASCIIMixedCase, TextCaseASCIIInsensitive)); |
+ EXPECT_FALSE(nonASCII.endsWith(allASCIIDifferent, TextCaseASCIIInsensitive)); |
+} |
+ |
+TEST(StringTest, EqualIgnoringASCIICase) |
+{ |
+ String allASCII("LINK"); |
+ String allASCIILowerCase("link"); |
+ EXPECT_TRUE(equalIgnoringASCIICase(allASCII, allASCIILowerCase)); |
+ String allASCIIMixedCase("lInK"); |
+ EXPECT_TRUE(equalIgnoringASCIICase(allASCII, allASCIIMixedCase)); |
+ String allASCIIDifferent("foo"); |
+ EXPECT_FALSE(equalIgnoringASCIICase(allASCII, allASCIIDifferent)); |
+ String nonASCII = String::fromUTF8("LIN\xE2\x84\xAA"); |
+ EXPECT_FALSE(equalIgnoringASCIICase(allASCII, nonASCII)); |
+ EXPECT_TRUE(equalIgnoringASCIICase(allASCII, nonASCII.lower())); |
+ |
+ EXPECT_FALSE(equalIgnoringASCIICase(nonASCII, allASCII)); |
+ EXPECT_FALSE(equalIgnoringASCIICase(nonASCII, allASCIILowerCase)); |
+ EXPECT_FALSE(equalIgnoringASCIICase(nonASCII, allASCIIMixedCase)); |
+ EXPECT_FALSE(equalIgnoringASCIICase(nonASCII, allASCIIDifferent)); |
+} |
+ |
+TEST(StringTest, FindIgnoringASCIICase) |
+{ |
+ String needle = String::fromUTF8("a\xCC\x88qa\xCC\x88"); |
+ |
+ // Multiple matches, non-overlapping |
+ String haystack1 = String::fromUTF8("aA\xCC\x88QA\xCC\x88sA\xCC\x88qa\xCC\x88rfi\xC3\xA4q\xC3\xA4"); |
+ EXPECT_EQ(1u, haystack1.findIgnoringASCIICase(needle)); |
+ EXPECT_EQ(7u, haystack1.findIgnoringASCIICase(needle, 2)); |
+ EXPECT_EQ(kNotFound, haystack1.findIgnoringASCIICase(needle, 8)); |
+ |
+ // Multiple matches, overlapping |
+ String haystack2 = String::fromUTF8("aA\xCC\x88QA\xCC\x88qa\xCC\x88rfi"); |
+ EXPECT_EQ(1u, haystack2.findIgnoringASCIICase(needle)); |
+ EXPECT_EQ(4u, haystack2.findIgnoringASCIICase(needle, 2)); |
+ EXPECT_EQ(kNotFound, haystack2.findIgnoringASCIICase(needle, 5)); |
} |
TEST(StringTest, Lower) |