| OLD | NEW | 
|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "base/strings/string_util.h" | 5 #include "base/strings/string_util.h" | 
| 6 | 6 | 
| 7 #include <math.h> | 7 #include <math.h> | 
| 8 #include <stdarg.h> | 8 #include <stdarg.h> | 
| 9 | 9 | 
| 10 #include <algorithm> | 10 #include <algorithm> | 
| (...skipping 976 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 987 | 987 | 
| 988 TEST(StringUtilTest, ReplaceStringPlaceholdersConsecutiveDollarSigns) { | 988 TEST(StringUtilTest, ReplaceStringPlaceholdersConsecutiveDollarSigns) { | 
| 989   std::vector<std::string> subst; | 989   std::vector<std::string> subst; | 
| 990   subst.push_back("a"); | 990   subst.push_back("a"); | 
| 991   subst.push_back("b"); | 991   subst.push_back("b"); | 
| 992   subst.push_back("c"); | 992   subst.push_back("c"); | 
| 993   EXPECT_EQ(ReplaceStringPlaceholders("$$1 $$$2 $$$$3", subst, NULL), | 993   EXPECT_EQ(ReplaceStringPlaceholders("$$1 $$$2 $$$$3", subst, NULL), | 
| 994             "$1 $$2 $$$3"); | 994             "$1 $$2 $$$3"); | 
| 995 } | 995 } | 
| 996 | 996 | 
| 997 TEST(StringUtilTest, MatchPatternTest) { |  | 
| 998   EXPECT_TRUE(MatchPattern("www.google.com", "*.com")); |  | 
| 999   EXPECT_TRUE(MatchPattern("www.google.com", "*")); |  | 
| 1000   EXPECT_FALSE(MatchPattern("www.google.com", "www*.g*.org")); |  | 
| 1001   EXPECT_TRUE(MatchPattern("Hello", "H?l?o")); |  | 
| 1002   EXPECT_FALSE(MatchPattern("www.google.com", "http://*)")); |  | 
| 1003   EXPECT_FALSE(MatchPattern("www.msn.com", "*.COM")); |  | 
| 1004   EXPECT_TRUE(MatchPattern("Hello*1234", "He??o\\*1*")); |  | 
| 1005   EXPECT_FALSE(MatchPattern("", "*.*")); |  | 
| 1006   EXPECT_TRUE(MatchPattern("", "*")); |  | 
| 1007   EXPECT_TRUE(MatchPattern("", "?")); |  | 
| 1008   EXPECT_TRUE(MatchPattern("", "")); |  | 
| 1009   EXPECT_FALSE(MatchPattern("Hello", "")); |  | 
| 1010   EXPECT_TRUE(MatchPattern("Hello*", "Hello*")); |  | 
| 1011   // Stop after a certain recursion depth. |  | 
| 1012   EXPECT_FALSE(MatchPattern("123456789012345678", "?????????????????*")); |  | 
| 1013 |  | 
| 1014   // Test UTF8 matching. |  | 
| 1015   EXPECT_TRUE(MatchPattern("heart: \xe2\x99\xa0", "*\xe2\x99\xa0")); |  | 
| 1016   EXPECT_TRUE(MatchPattern("heart: \xe2\x99\xa0.", "heart: ?.")); |  | 
| 1017   EXPECT_TRUE(MatchPattern("hearts: \xe2\x99\xa0\xe2\x99\xa0", "*")); |  | 
| 1018   // Invalid sequences should be handled as a single invalid character. |  | 
| 1019   EXPECT_TRUE(MatchPattern("invalid: \xef\xbf\xbe", "invalid: ?")); |  | 
| 1020   // If the pattern has invalid characters, it shouldn't match anything. |  | 
| 1021   EXPECT_FALSE(MatchPattern("\xf4\x90\x80\x80", "\xf4\x90\x80\x80")); |  | 
| 1022 |  | 
| 1023   // Test UTF16 character matching. |  | 
| 1024   EXPECT_TRUE(MatchPattern(UTF8ToUTF16("www.google.com"), |  | 
| 1025                            UTF8ToUTF16("*.com"))); |  | 
| 1026   EXPECT_TRUE(MatchPattern(UTF8ToUTF16("Hello*1234"), |  | 
| 1027                            UTF8ToUTF16("He??o\\*1*"))); |  | 
| 1028 |  | 
| 1029   // This test verifies that consecutive wild cards are collapsed into 1 |  | 
| 1030   // wildcard (when this doesn't occur, MatchPattern reaches it's maximum |  | 
| 1031   // recursion depth). |  | 
| 1032   EXPECT_TRUE(MatchPattern(UTF8ToUTF16("Hello"), |  | 
| 1033                            UTF8ToUTF16("He********************************o"))); |  | 
| 1034 } |  | 
| 1035 |  | 
| 1036 TEST(StringUtilTest, LcpyTest) { | 997 TEST(StringUtilTest, LcpyTest) { | 
| 1037   // Test the normal case where we fit in our buffer. | 998   // Test the normal case where we fit in our buffer. | 
| 1038   { | 999   { | 
| 1039     char dst[10]; | 1000     char dst[10]; | 
| 1040     wchar_t wdst[10]; | 1001     wchar_t wdst[10]; | 
| 1041     EXPECT_EQ(7U, strlcpy(dst, "abcdefg", arraysize(dst))); | 1002     EXPECT_EQ(7U, strlcpy(dst, "abcdefg", arraysize(dst))); | 
| 1042     EXPECT_EQ(0, memcmp(dst, "abcdefg", 8)); | 1003     EXPECT_EQ(0, memcmp(dst, "abcdefg", 8)); | 
| 1043     EXPECT_EQ(7U, wcslcpy(wdst, L"abcdefg", arraysize(wdst))); | 1004     EXPECT_EQ(7U, wcslcpy(wdst, L"abcdefg", arraysize(wdst))); | 
| 1044     EXPECT_EQ(0, memcmp(wdst, L"abcdefg", sizeof(wchar_t) * 8)); | 1005     EXPECT_EQ(0, memcmp(wdst, L"abcdefg", sizeof(wchar_t) * 8)); | 
| 1045   } | 1006   } | 
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1226   const std::string live = kLive; | 1187   const std::string live = kLive; | 
| 1227   std::string dead = live; | 1188   std::string dead = live; | 
| 1228   strncpy(WriteInto(&dead, 5), kDead, 4); | 1189   strncpy(WriteInto(&dead, 5), kDead, 4); | 
| 1229   EXPECT_EQ(kDead, dead); | 1190   EXPECT_EQ(kDead, dead); | 
| 1230   EXPECT_EQ(4u, dead.size()); | 1191   EXPECT_EQ(4u, dead.size()); | 
| 1231   EXPECT_EQ(kLive, live); | 1192   EXPECT_EQ(kLive, live); | 
| 1232   EXPECT_EQ(4u, live.size()); | 1193   EXPECT_EQ(4u, live.size()); | 
| 1233 } | 1194 } | 
| 1234 | 1195 | 
| 1235 }  // namespace base | 1196 }  // namespace base | 
| OLD | NEW | 
|---|