| Index: base/strings/string_util_unittest.cc
|
| diff --git a/base/strings/string_util_unittest.cc b/base/strings/string_util_unittest.cc
|
| index fb0beada4b344b5223c3610e42a071ca63295bab..75fc58a08d4830d82574d1500da3e2d7fa40fe30 100644
|
| --- a/base/strings/string_util_unittest.cc
|
| +++ b/base/strings/string_util_unittest.cc
|
| @@ -669,128 +669,7 @@ TEST(StringUtilTest, HexDigitToInt) {
|
| EXPECT_EQ(15, HexDigitToInt('f'));
|
| }
|
|
|
| -// Test for Tokenize
|
| -template <typename STR>
|
| -void TokenizeTest() {
|
| - std::vector<STR> r;
|
| - size_t size;
|
| -
|
| - size = Tokenize(STR("This is a string"), STR(" "), &r);
|
| - EXPECT_EQ(4U, size);
|
| - ASSERT_EQ(4U, r.size());
|
| - EXPECT_EQ(r[0], STR("This"));
|
| - EXPECT_EQ(r[1], STR("is"));
|
| - EXPECT_EQ(r[2], STR("a"));
|
| - EXPECT_EQ(r[3], STR("string"));
|
| - r.clear();
|
| -
|
| - size = Tokenize(STR("one,two,three"), STR(","), &r);
|
| - EXPECT_EQ(3U, size);
|
| - ASSERT_EQ(3U, r.size());
|
| - EXPECT_EQ(r[0], STR("one"));
|
| - EXPECT_EQ(r[1], STR("two"));
|
| - EXPECT_EQ(r[2], STR("three"));
|
| - r.clear();
|
| -
|
| - size = Tokenize(STR("one,two:three;four"), STR(",:"), &r);
|
| - EXPECT_EQ(3U, size);
|
| - ASSERT_EQ(3U, r.size());
|
| - EXPECT_EQ(r[0], STR("one"));
|
| - EXPECT_EQ(r[1], STR("two"));
|
| - EXPECT_EQ(r[2], STR("three;four"));
|
| - r.clear();
|
| -
|
| - size = Tokenize(STR("one,two:three;four"), STR(";,:"), &r);
|
| - EXPECT_EQ(4U, size);
|
| - ASSERT_EQ(4U, r.size());
|
| - EXPECT_EQ(r[0], STR("one"));
|
| - EXPECT_EQ(r[1], STR("two"));
|
| - EXPECT_EQ(r[2], STR("three"));
|
| - EXPECT_EQ(r[3], STR("four"));
|
| - r.clear();
|
| -
|
| - size = Tokenize(STR("one, two, three"), STR(","), &r);
|
| - EXPECT_EQ(3U, size);
|
| - ASSERT_EQ(3U, r.size());
|
| - EXPECT_EQ(r[0], STR("one"));
|
| - EXPECT_EQ(r[1], STR(" two"));
|
| - EXPECT_EQ(r[2], STR(" three"));
|
| - r.clear();
|
| -
|
| - size = Tokenize(STR("one, two, three, "), STR(","), &r);
|
| - EXPECT_EQ(4U, size);
|
| - ASSERT_EQ(4U, r.size());
|
| - EXPECT_EQ(r[0], STR("one"));
|
| - EXPECT_EQ(r[1], STR(" two"));
|
| - EXPECT_EQ(r[2], STR(" three"));
|
| - EXPECT_EQ(r[3], STR(" "));
|
| - r.clear();
|
| -
|
| - size = Tokenize(STR("one, two, three,"), STR(","), &r);
|
| - EXPECT_EQ(3U, size);
|
| - ASSERT_EQ(3U, r.size());
|
| - EXPECT_EQ(r[0], STR("one"));
|
| - EXPECT_EQ(r[1], STR(" two"));
|
| - EXPECT_EQ(r[2], STR(" three"));
|
| - r.clear();
|
| -
|
| - size = Tokenize(STR(), STR(","), &r);
|
| - EXPECT_EQ(0U, size);
|
| - ASSERT_EQ(0U, r.size());
|
| - r.clear();
|
| -
|
| - size = Tokenize(STR(","), STR(","), &r);
|
| - EXPECT_EQ(0U, size);
|
| - ASSERT_EQ(0U, r.size());
|
| - r.clear();
|
| -
|
| - size = Tokenize(STR(",;:."), STR(".:;,"), &r);
|
| - EXPECT_EQ(0U, size);
|
| - ASSERT_EQ(0U, r.size());
|
| - r.clear();
|
| -
|
| - size = Tokenize(STR("\t\ta\t"), STR("\t"), &r);
|
| - EXPECT_EQ(1U, size);
|
| - ASSERT_EQ(1U, r.size());
|
| - EXPECT_EQ(r[0], STR("a"));
|
| - r.clear();
|
| -
|
| - size = Tokenize(STR("\ta\t\nb\tcc"), STR("\n"), &r);
|
| - EXPECT_EQ(2U, size);
|
| - ASSERT_EQ(2U, r.size());
|
| - EXPECT_EQ(r[0], STR("\ta\t"));
|
| - EXPECT_EQ(r[1], STR("b\tcc"));
|
| - r.clear();
|
| -}
|
| -
|
| -TEST(StringUtilTest, TokenizeStdString) {
|
| - TokenizeTest<std::string>();
|
| -}
|
| -
|
| -TEST(StringUtilTest, TokenizeStringPiece) {
|
| - TokenizeTest<StringPiece>();
|
| -}
|
| -
|
| -// Test for JoinString
|
| TEST(StringUtilTest, JoinString) {
|
| - std::vector<std::string> in;
|
| - EXPECT_EQ("", JoinString(in, ','));
|
| -
|
| - in.push_back("a");
|
| - EXPECT_EQ("a", JoinString(in, ','));
|
| -
|
| - in.push_back("b");
|
| - in.push_back("c");
|
| - EXPECT_EQ("a,b,c", JoinString(in, ','));
|
| -
|
| - in.push_back(std::string());
|
| - EXPECT_EQ("a,b,c,", JoinString(in, ','));
|
| - in.push_back(" ");
|
| - EXPECT_EQ("a|b|c|| ", JoinString(in, '|'));
|
| -}
|
| -
|
| -// Test for JoinString overloaded with std::string separator
|
| -TEST(StringUtilTest, JoinStringWithString) {
|
| std::string separator(", ");
|
| std::vector<std::string> parts;
|
| EXPECT_EQ(std::string(), JoinString(parts, separator));
|
| @@ -808,8 +687,7 @@ TEST(StringUtilTest, JoinStringWithString) {
|
| EXPECT_EQ("a|b|c|| ", JoinString(parts, "|"));
|
| }
|
|
|
| -// Test for JoinString overloaded with string16 separator
|
| -TEST(StringUtilTest, JoinStringWithString16) {
|
| +TEST(StringUtilTest, JoinString16) {
|
| string16 separator = ASCIIToUTF16(", ");
|
| std::vector<string16> parts;
|
| EXPECT_EQ(string16(), JoinString(parts, separator));
|
| @@ -828,59 +706,83 @@ TEST(StringUtilTest, JoinStringWithString16) {
|
| }
|
|
|
| TEST(StringUtilTest, StartsWith) {
|
| - EXPECT_TRUE(StartsWithASCII("javascript:url", "javascript", true));
|
| - EXPECT_FALSE(StartsWithASCII("JavaScript:url", "javascript", true));
|
| - EXPECT_TRUE(StartsWithASCII("javascript:url", "javascript", false));
|
| - EXPECT_TRUE(StartsWithASCII("JavaScript:url", "javascript", false));
|
| - EXPECT_FALSE(StartsWithASCII("java", "javascript", true));
|
| - EXPECT_FALSE(StartsWithASCII("java", "javascript", false));
|
| - EXPECT_FALSE(StartsWithASCII(std::string(), "javascript", false));
|
| - EXPECT_FALSE(StartsWithASCII(std::string(), "javascript", true));
|
| - EXPECT_TRUE(StartsWithASCII("java", std::string(), false));
|
| - EXPECT_TRUE(StartsWithASCII("java", std::string(), true));
|
| + EXPECT_TRUE(
|
| + StartsWith("javascript:url", "javascript", base::CompareCase::SENSITIVE));
|
| + EXPECT_FALSE(
|
| + StartsWith("JavaScript:url", "javascript", base::CompareCase::SENSITIVE));
|
| + EXPECT_TRUE(StartsWith("javascript:url", "javascript",
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_TRUE(StartsWith("JavaScript:url", "javascript",
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_FALSE(StartsWith("java", "javascript", base::CompareCase::SENSITIVE));
|
| + EXPECT_FALSE(
|
| + StartsWith("java", "javascript", base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_FALSE(StartsWith(std::string(), "javascript",
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_FALSE(
|
| + StartsWith(std::string(), "javascript", base::CompareCase::SENSITIVE));
|
| + EXPECT_TRUE(
|
| + StartsWith("java", std::string(), base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_TRUE(StartsWith("java", std::string(), base::CompareCase::SENSITIVE));
|
|
|
| EXPECT_TRUE(StartsWith(ASCIIToUTF16("javascript:url"),
|
| - ASCIIToUTF16("javascript"), true));
|
| + ASCIIToUTF16("javascript"),
|
| + base::CompareCase::SENSITIVE));
|
| EXPECT_FALSE(StartsWith(ASCIIToUTF16("JavaScript:url"),
|
| - ASCIIToUTF16("javascript"), true));
|
| + ASCIIToUTF16("javascript"),
|
| + base::CompareCase::SENSITIVE));
|
| EXPECT_TRUE(StartsWith(ASCIIToUTF16("javascript:url"),
|
| - ASCIIToUTF16("javascript"), false));
|
| + ASCIIToUTF16("javascript"),
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| EXPECT_TRUE(StartsWith(ASCIIToUTF16("JavaScript:url"),
|
| - ASCIIToUTF16("javascript"), false));
|
| - EXPECT_FALSE(StartsWith(ASCIIToUTF16("java"),
|
| - ASCIIToUTF16("javascript"), true));
|
| - EXPECT_FALSE(StartsWith(ASCIIToUTF16("java"),
|
| - ASCIIToUTF16("javascript"), false));
|
| - EXPECT_FALSE(StartsWith(string16(), ASCIIToUTF16("javascript"), false));
|
| - EXPECT_FALSE(StartsWith(string16(), ASCIIToUTF16("javascript"), true));
|
| - EXPECT_TRUE(StartsWith(ASCIIToUTF16("java"), string16(), false));
|
| - EXPECT_TRUE(StartsWith(ASCIIToUTF16("java"), string16(), true));
|
| + ASCIIToUTF16("javascript"),
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_FALSE(StartsWith(ASCIIToUTF16("java"), ASCIIToUTF16("javascript"),
|
| + base::CompareCase::SENSITIVE));
|
| + EXPECT_FALSE(StartsWith(ASCIIToUTF16("java"), ASCIIToUTF16("javascript"),
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_FALSE(StartsWith(string16(), ASCIIToUTF16("javascript"),
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_FALSE(StartsWith(string16(), ASCIIToUTF16("javascript"),
|
| + base::CompareCase::SENSITIVE));
|
| + EXPECT_TRUE(StartsWith(ASCIIToUTF16("java"), string16(),
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_TRUE(StartsWith(ASCIIToUTF16("java"), string16(),
|
| + base::CompareCase::SENSITIVE));
|
| }
|
|
|
| TEST(StringUtilTest, EndsWith) {
|
| - EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"),
|
| - ASCIIToUTF16(".plugin"), true));
|
| - EXPECT_FALSE(EndsWith(ASCIIToUTF16("Foo.Plugin"),
|
| - ASCIIToUTF16(".plugin"), true));
|
| - EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"),
|
| - ASCIIToUTF16(".plugin"), false));
|
| - EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.Plugin"),
|
| - ASCIIToUTF16(".plugin"), false));
|
| - EXPECT_FALSE(EndsWith(ASCIIToUTF16(".plug"), ASCIIToUTF16(".plugin"), true));
|
| - EXPECT_FALSE(EndsWith(ASCIIToUTF16(".plug"), ASCIIToUTF16(".plugin"), false));
|
| - EXPECT_FALSE(EndsWith(ASCIIToUTF16("Foo.plugin Bar"),
|
| - ASCIIToUTF16(".plugin"), true));
|
| - EXPECT_FALSE(EndsWith(ASCIIToUTF16("Foo.plugin Bar"),
|
| - ASCIIToUTF16(".plugin"), false));
|
| - EXPECT_FALSE(EndsWith(string16(), ASCIIToUTF16(".plugin"), false));
|
| - EXPECT_FALSE(EndsWith(string16(), ASCIIToUTF16(".plugin"), true));
|
| - EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), string16(), false));
|
| - EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), string16(), true));
|
| - EXPECT_TRUE(EndsWith(ASCIIToUTF16(".plugin"),
|
| - ASCIIToUTF16(".plugin"), false));
|
| - EXPECT_TRUE(EndsWith(ASCIIToUTF16(".plugin"), ASCIIToUTF16(".plugin"), true));
|
| - EXPECT_TRUE(EndsWith(string16(), string16(), false));
|
| - EXPECT_TRUE(EndsWith(string16(), string16(), true));
|
| + EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), ASCIIToUTF16(".plugin"),
|
| + base::CompareCase::SENSITIVE));
|
| + EXPECT_FALSE(EndsWith(ASCIIToUTF16("Foo.Plugin"), ASCIIToUTF16(".plugin"),
|
| + base::CompareCase::SENSITIVE));
|
| + EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), ASCIIToUTF16(".plugin"),
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.Plugin"), ASCIIToUTF16(".plugin"),
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_FALSE(EndsWith(ASCIIToUTF16(".plug"), ASCIIToUTF16(".plugin"),
|
| + base::CompareCase::SENSITIVE));
|
| + EXPECT_FALSE(EndsWith(ASCIIToUTF16(".plug"), ASCIIToUTF16(".plugin"),
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_FALSE(EndsWith(ASCIIToUTF16("Foo.plugin Bar"), ASCIIToUTF16(".plugin"),
|
| + base::CompareCase::SENSITIVE));
|
| + EXPECT_FALSE(EndsWith(ASCIIToUTF16("Foo.plugin Bar"), ASCIIToUTF16(".plugin"),
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_FALSE(EndsWith(string16(), ASCIIToUTF16(".plugin"),
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_FALSE(EndsWith(string16(), ASCIIToUTF16(".plugin"),
|
| + base::CompareCase::SENSITIVE));
|
| + EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), string16(),
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), string16(),
|
| + base::CompareCase::SENSITIVE));
|
| + EXPECT_TRUE(EndsWith(ASCIIToUTF16(".plugin"), ASCIIToUTF16(".plugin"),
|
| + base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_TRUE(EndsWith(ASCIIToUTF16(".plugin"), ASCIIToUTF16(".plugin"),
|
| + base::CompareCase::SENSITIVE));
|
| + EXPECT_TRUE(
|
| + EndsWith(string16(), string16(), base::CompareCase::INSENSITIVE_ASCII));
|
| + EXPECT_TRUE(EndsWith(string16(), string16(), base::CompareCase::SENSITIVE));
|
| }
|
|
|
| TEST(StringUtilTest, GetStringFWithOffsets) {
|
| @@ -994,45 +896,6 @@ TEST(StringUtilTest, ReplaceStringPlaceholdersConsecutiveDollarSigns) {
|
| "$1 $$2 $$$3");
|
| }
|
|
|
| -TEST(StringUtilTest, MatchPatternTest) {
|
| - EXPECT_TRUE(MatchPattern("www.google.com", "*.com"));
|
| - EXPECT_TRUE(MatchPattern("www.google.com", "*"));
|
| - EXPECT_FALSE(MatchPattern("www.google.com", "www*.g*.org"));
|
| - EXPECT_TRUE(MatchPattern("Hello", "H?l?o"));
|
| - EXPECT_FALSE(MatchPattern("www.google.com", "http://*)"));
|
| - EXPECT_FALSE(MatchPattern("www.msn.com", "*.COM"));
|
| - EXPECT_TRUE(MatchPattern("Hello*1234", "He??o\\*1*"));
|
| - EXPECT_FALSE(MatchPattern("", "*.*"));
|
| - EXPECT_TRUE(MatchPattern("", "*"));
|
| - EXPECT_TRUE(MatchPattern("", "?"));
|
| - EXPECT_TRUE(MatchPattern("", ""));
|
| - EXPECT_FALSE(MatchPattern("Hello", ""));
|
| - EXPECT_TRUE(MatchPattern("Hello*", "Hello*"));
|
| - // Stop after a certain recursion depth.
|
| - EXPECT_FALSE(MatchPattern("123456789012345678", "?????????????????*"));
|
| -
|
| - // Test UTF8 matching.
|
| - EXPECT_TRUE(MatchPattern("heart: \xe2\x99\xa0", "*\xe2\x99\xa0"));
|
| - EXPECT_TRUE(MatchPattern("heart: \xe2\x99\xa0.", "heart: ?."));
|
| - EXPECT_TRUE(MatchPattern("hearts: \xe2\x99\xa0\xe2\x99\xa0", "*"));
|
| - // Invalid sequences should be handled as a single invalid character.
|
| - EXPECT_TRUE(MatchPattern("invalid: \xef\xbf\xbe", "invalid: ?"));
|
| - // If the pattern has invalid characters, it shouldn't match anything.
|
| - EXPECT_FALSE(MatchPattern("\xf4\x90\x80\x80", "\xf4\x90\x80\x80"));
|
| -
|
| - // Test UTF16 character matching.
|
| - EXPECT_TRUE(MatchPattern(UTF8ToUTF16("www.google.com"),
|
| - UTF8ToUTF16("*.com")));
|
| - EXPECT_TRUE(MatchPattern(UTF8ToUTF16("Hello*1234"),
|
| - UTF8ToUTF16("He??o\\*1*")));
|
| -
|
| - // This test verifies that consecutive wild cards are collapsed into 1
|
| - // wildcard (when this doesn't occur, MatchPattern reaches it's maximum
|
| - // recursion depth).
|
| - EXPECT_TRUE(MatchPattern(UTF8ToUTF16("Hello"),
|
| - UTF8ToUTF16("He********************************o")));
|
| -}
|
| -
|
| TEST(StringUtilTest, LcpyTest) {
|
| // Test the normal case where we fit in our buffer.
|
| {
|
| @@ -1197,6 +1060,26 @@ TEST(StringUtilTest, ContainsOnlyChars) {
|
| kWhitespaceUTF16));
|
| }
|
|
|
| +TEST(StringUtilTest, CompareCaseInsensitiveASCII) {
|
| + EXPECT_EQ(0, CompareCaseInsensitiveASCII("", ""));
|
| + EXPECT_EQ(0, CompareCaseInsensitiveASCII("Asdf", "aSDf"));
|
| +
|
| + // Differing lengths.
|
| + EXPECT_EQ(-1, CompareCaseInsensitiveASCII("Asdf", "aSDfA"));
|
| + EXPECT_EQ(1, CompareCaseInsensitiveASCII("AsdfA", "aSDf"));
|
| +
|
| + // Differing values.
|
| + EXPECT_EQ(-1, CompareCaseInsensitiveASCII("AsdfA", "aSDfb"));
|
| + EXPECT_EQ(1, CompareCaseInsensitiveASCII("Asdfb", "aSDfA"));
|
| +}
|
| +
|
| +TEST(StringUtilTest, EqualsCaseInsensitiveASCII) {
|
| + EXPECT_TRUE(EqualsCaseInsensitiveASCII("", ""));
|
| + EXPECT_TRUE(EqualsCaseInsensitiveASCII("Asdf", "aSDF"));
|
| + EXPECT_FALSE(EqualsCaseInsensitiveASCII("bsdf", "aSDF"));
|
| + EXPECT_FALSE(EqualsCaseInsensitiveASCII("Asdf", "aSDFz"));
|
| +}
|
| +
|
| class WriteIntoTest : public testing::Test {
|
| protected:
|
| static void WritesCorrectly(size_t num_chars) {
|
|
|