Chromium Code Reviews| 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..c0be1e6738f15147b96df82aa811c9917c156ab5 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(WTF, EqualIgnoringASCIICase) |
|
tkent
2015/12/11 00:02:45
WTF -> StringTest
fs
2015/12/11 11:43:16
Done.
|
| +{ |
| + 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) |