| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <string> | 5 #include <string> | 
| 6 | 6 | 
| 7 #include "base/strings/string16.h" | 7 #include "base/strings/string16.h" | 
| 8 #include "base/strings/string_piece.h" | 8 #include "base/strings/string_piece.h" | 
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" | 
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" | 
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 185   d.clear(); | 185   d.clear(); | 
| 186   ASSERT_EQ(d.size(), 0U); | 186   ASSERT_EQ(d.size(), 0U); | 
| 187   ASSERT_TRUE(d.empty()); | 187   ASSERT_TRUE(d.empty()); | 
| 188   ASSERT_TRUE(d.data() == NULL); | 188   ASSERT_TRUE(d.data() == NULL); | 
| 189   ASSERT_TRUE(d.begin() == d.end()); | 189   ASSERT_TRUE(d.begin() == d.end()); | 
| 190 | 190 | 
| 191   ASSERT_GE(a.max_size(), a.capacity()); | 191   ASSERT_GE(a.max_size(), a.capacity()); | 
| 192   ASSERT_GE(a.capacity(), a.size()); | 192   ASSERT_GE(a.capacity(), a.size()); | 
| 193 } | 193 } | 
| 194 | 194 | 
| 195 // STL stuff only supported by the std::string version | 195 TYPED_TEST(CommonStringPieceTest, CheckFind) { | 
| 196 TEST(StringPieceTest, CheckSTL) { | 196   typedef BasicStringPiece<TypeParam> Piece; | 
| 197   StringPiece a("abcdefghijklmnopqrstuvwxyz"); | 197 | 
| 198   StringPiece b("abc"); | 198   TypeParam alphabet(TestFixture::as_string("abcdefghijklmnopqrstuvwxyz")); | 
| 199   StringPiece c("xyz"); | 199   TypeParam abc(TestFixture::as_string("abc")); | 
| 200   StringPiece d("foobar"); | 200   TypeParam xyz(TestFixture::as_string("xyz")); | 
|  | 201   TypeParam foobar(TestFixture::as_string("foobar")); | 
|  | 202 | 
|  | 203   BasicStringPiece<TypeParam> a(alphabet); | 
|  | 204   BasicStringPiece<TypeParam> b(abc); | 
|  | 205   BasicStringPiece<TypeParam> c(xyz); | 
|  | 206   BasicStringPiece<TypeParam> d(foobar); | 
|  | 207 | 
| 201   d.clear(); | 208   d.clear(); | 
| 202   StringPiece e; | 209   Piece e; | 
| 203   std::string temp("123"); | 210   TypeParam temp(TestFixture::as_string("123")); | 
| 204   temp += '\0'; | 211   temp.push_back('\0'); | 
| 205   temp += "456"; | 212   temp += TestFixture::as_string("456"); | 
| 206   StringPiece f(temp); | 213   Piece f(temp); | 
| 207 | 214 | 
| 208   char buf[4] = { '%', '%', '%', '%' }; | 215   typename TypeParam::value_type buf[4] = { '%', '%', '%', '%' }; | 
| 209   ASSERT_EQ(a.copy(buf, 4), 4U); | 216   ASSERT_EQ(a.copy(buf, 4), 4U); | 
| 210   ASSERT_EQ(buf[0], a[0]); | 217   ASSERT_EQ(buf[0], a[0]); | 
| 211   ASSERT_EQ(buf[1], a[1]); | 218   ASSERT_EQ(buf[1], a[1]); | 
| 212   ASSERT_EQ(buf[2], a[2]); | 219   ASSERT_EQ(buf[2], a[2]); | 
| 213   ASSERT_EQ(buf[3], a[3]); | 220   ASSERT_EQ(buf[3], a[3]); | 
| 214   ASSERT_EQ(a.copy(buf, 3, 7), 3U); | 221   ASSERT_EQ(a.copy(buf, 3, 7), 3U); | 
| 215   ASSERT_EQ(buf[0], a[7]); | 222   ASSERT_EQ(buf[0], a[7]); | 
| 216   ASSERT_EQ(buf[1], a[8]); | 223   ASSERT_EQ(buf[1], a[8]); | 
| 217   ASSERT_EQ(buf[2], a[9]); | 224   ASSERT_EQ(buf[2], a[9]); | 
| 218   ASSERT_EQ(buf[3], a[3]); | 225   ASSERT_EQ(buf[3], a[3]); | 
| 219   ASSERT_EQ(c.copy(buf, 99), 3U); | 226   ASSERT_EQ(c.copy(buf, 99), 3U); | 
| 220   ASSERT_EQ(buf[0], c[0]); | 227   ASSERT_EQ(buf[0], c[0]); | 
| 221   ASSERT_EQ(buf[1], c[1]); | 228   ASSERT_EQ(buf[1], c[1]); | 
| 222   ASSERT_EQ(buf[2], c[2]); | 229   ASSERT_EQ(buf[2], c[2]); | 
| 223   ASSERT_EQ(buf[3], a[3]); | 230   ASSERT_EQ(buf[3], a[3]); | 
| 224 | 231 | 
| 225   ASSERT_EQ(StringPiece::npos, std::string::npos); | 232   ASSERT_EQ(Piece::npos, TypeParam::npos); | 
| 226 | 233 | 
| 227   ASSERT_EQ(a.find(b), 0U); | 234   ASSERT_EQ(a.find(b), 0U); | 
| 228   ASSERT_EQ(a.find(b, 1), StringPiece::npos); | 235   ASSERT_EQ(a.find(b, 1), Piece::npos); | 
| 229   ASSERT_EQ(a.find(c), 23U); | 236   ASSERT_EQ(a.find(c), 23U); | 
| 230   ASSERT_EQ(a.find(c, 9), 23U); | 237   ASSERT_EQ(a.find(c, 9), 23U); | 
| 231   ASSERT_EQ(a.find(c, StringPiece::npos), StringPiece::npos); | 238   ASSERT_EQ(a.find(c, Piece::npos), Piece::npos); | 
| 232   ASSERT_EQ(b.find(c), StringPiece::npos); | 239   ASSERT_EQ(b.find(c), Piece::npos); | 
| 233   ASSERT_EQ(b.find(c, StringPiece::npos), StringPiece::npos); | 240   ASSERT_EQ(b.find(c, Piece::npos), Piece::npos); | 
| 234   ASSERT_EQ(a.find(d), 0U); | 241   ASSERT_EQ(a.find(d), 0U); | 
| 235   ASSERT_EQ(a.find(e), 0U); | 242   ASSERT_EQ(a.find(e), 0U); | 
| 236   ASSERT_EQ(a.find(d, 12), 12U); | 243   ASSERT_EQ(a.find(d, 12), 12U); | 
| 237   ASSERT_EQ(a.find(e, 17), 17U); | 244   ASSERT_EQ(a.find(e, 17), 17U); | 
| 238   StringPiece g("xx not found bb"); | 245   TypeParam not_found(TestFixture::as_string("xx not found bb")); | 
| 239   ASSERT_EQ(a.find(g), StringPiece::npos); | 246   Piece g(not_found); | 
|  | 247   ASSERT_EQ(a.find(g), Piece::npos); | 
| 240   // empty string nonsense | 248   // empty string nonsense | 
| 241   ASSERT_EQ(d.find(b), StringPiece::npos); | 249   ASSERT_EQ(d.find(b), Piece::npos); | 
| 242   ASSERT_EQ(e.find(b), StringPiece::npos); | 250   ASSERT_EQ(e.find(b), Piece::npos); | 
| 243   ASSERT_EQ(d.find(b, 4), StringPiece::npos); | 251   ASSERT_EQ(d.find(b, 4), Piece::npos); | 
| 244   ASSERT_EQ(e.find(b, 7), StringPiece::npos); | 252   ASSERT_EQ(e.find(b, 7), Piece::npos); | 
| 245 | 253 | 
| 246   size_t empty_search_pos = std::string().find(std::string()); | 254   size_t empty_search_pos = TypeParam().find(TypeParam()); | 
| 247   ASSERT_EQ(d.find(d), empty_search_pos); | 255   ASSERT_EQ(d.find(d), empty_search_pos); | 
| 248   ASSERT_EQ(d.find(e), empty_search_pos); | 256   ASSERT_EQ(d.find(e), empty_search_pos); | 
| 249   ASSERT_EQ(e.find(d), empty_search_pos); | 257   ASSERT_EQ(e.find(d), empty_search_pos); | 
| 250   ASSERT_EQ(e.find(e), empty_search_pos); | 258   ASSERT_EQ(e.find(e), empty_search_pos); | 
| 251   ASSERT_EQ(d.find(d, 4), std::string().find(std::string(), 4)); | 259   ASSERT_EQ(d.find(d, 4), std::string().find(std::string(), 4)); | 
| 252   ASSERT_EQ(d.find(e, 4), std::string().find(std::string(), 4)); | 260   ASSERT_EQ(d.find(e, 4), std::string().find(std::string(), 4)); | 
| 253   ASSERT_EQ(e.find(d, 4), std::string().find(std::string(), 4)); | 261   ASSERT_EQ(e.find(d, 4), std::string().find(std::string(), 4)); | 
| 254   ASSERT_EQ(e.find(e, 4), std::string().find(std::string(), 4)); | 262   ASSERT_EQ(e.find(e, 4), std::string().find(std::string(), 4)); | 
| 255 | 263 | 
| 256   ASSERT_EQ(a.find('a'), 0U); | 264   ASSERT_EQ(a.find('a'), 0U); | 
| 257   ASSERT_EQ(a.find('c'), 2U); | 265   ASSERT_EQ(a.find('c'), 2U); | 
| 258   ASSERT_EQ(a.find('z'), 25U); | 266   ASSERT_EQ(a.find('z'), 25U); | 
| 259   ASSERT_EQ(a.find('$'), StringPiece::npos); | 267   ASSERT_EQ(a.find('$'), Piece::npos); | 
| 260   ASSERT_EQ(a.find('\0'), StringPiece::npos); | 268   ASSERT_EQ(a.find('\0'), Piece::npos); | 
| 261   ASSERT_EQ(f.find('\0'), 3U); | 269   ASSERT_EQ(f.find('\0'), 3U); | 
| 262   ASSERT_EQ(f.find('3'), 2U); | 270   ASSERT_EQ(f.find('3'), 2U); | 
| 263   ASSERT_EQ(f.find('5'), 5U); | 271   ASSERT_EQ(f.find('5'), 5U); | 
| 264   ASSERT_EQ(g.find('o'), 4U); | 272   ASSERT_EQ(g.find('o'), 4U); | 
| 265   ASSERT_EQ(g.find('o', 4), 4U); | 273   ASSERT_EQ(g.find('o', 4), 4U); | 
| 266   ASSERT_EQ(g.find('o', 5), 8U); | 274   ASSERT_EQ(g.find('o', 5), 8U); | 
| 267   ASSERT_EQ(a.find('b', 5), StringPiece::npos); | 275   ASSERT_EQ(a.find('b', 5), Piece::npos); | 
| 268   // empty string nonsense | 276   // empty string nonsense | 
| 269   ASSERT_EQ(d.find('\0'), StringPiece::npos); | 277   ASSERT_EQ(d.find('\0'), Piece::npos); | 
| 270   ASSERT_EQ(e.find('\0'), StringPiece::npos); | 278   ASSERT_EQ(e.find('\0'), Piece::npos); | 
| 271   ASSERT_EQ(d.find('\0', 4), StringPiece::npos); | 279   ASSERT_EQ(d.find('\0', 4), Piece::npos); | 
| 272   ASSERT_EQ(e.find('\0', 7), StringPiece::npos); | 280   ASSERT_EQ(e.find('\0', 7), Piece::npos); | 
| 273   ASSERT_EQ(d.find('x'), StringPiece::npos); | 281   ASSERT_EQ(d.find('x'), Piece::npos); | 
| 274   ASSERT_EQ(e.find('x'), StringPiece::npos); | 282   ASSERT_EQ(e.find('x'), Piece::npos); | 
| 275   ASSERT_EQ(d.find('x', 4), StringPiece::npos); | 283   ASSERT_EQ(d.find('x', 4), Piece::npos); | 
| 276   ASSERT_EQ(e.find('x', 7), StringPiece::npos); | 284   ASSERT_EQ(e.find('x', 7), Piece::npos); | 
| 277 | 285 | 
| 278   ASSERT_EQ(a.rfind(b), 0U); | 286   ASSERT_EQ(a.rfind(b), 0U); | 
| 279   ASSERT_EQ(a.rfind(b, 1), 0U); | 287   ASSERT_EQ(a.rfind(b, 1), 0U); | 
| 280   ASSERT_EQ(a.rfind(c), 23U); | 288   ASSERT_EQ(a.rfind(c), 23U); | 
| 281   ASSERT_EQ(a.rfind(c, 22U), StringPiece::npos); | 289   ASSERT_EQ(a.rfind(c, 22U), Piece::npos); | 
| 282   ASSERT_EQ(a.rfind(c, 1U), StringPiece::npos); | 290   ASSERT_EQ(a.rfind(c, 1U), Piece::npos); | 
| 283   ASSERT_EQ(a.rfind(c, 0U), StringPiece::npos); | 291   ASSERT_EQ(a.rfind(c, 0U), Piece::npos); | 
| 284   ASSERT_EQ(b.rfind(c), StringPiece::npos); | 292   ASSERT_EQ(b.rfind(c), Piece::npos); | 
| 285   ASSERT_EQ(b.rfind(c, 0U), StringPiece::npos); | 293   ASSERT_EQ(b.rfind(c, 0U), Piece::npos); | 
| 286   ASSERT_EQ(a.rfind(d), (size_t) a.as_string().rfind(std::string())); | 294   ASSERT_EQ(a.rfind(d), static_cast<size_t>(a.as_string().rfind(TypeParam()))); | 
| 287   ASSERT_EQ(a.rfind(e), a.as_string().rfind(std::string())); | 295   ASSERT_EQ(a.rfind(e), a.as_string().rfind(TypeParam())); | 
| 288   ASSERT_EQ(a.rfind(d, 12), 12U); | 296   ASSERT_EQ(a.rfind(d, 12), 12U); | 
| 289   ASSERT_EQ(a.rfind(e, 17), 17U); | 297   ASSERT_EQ(a.rfind(e, 17), 17U); | 
| 290   ASSERT_EQ(a.rfind(g), StringPiece::npos); | 298   ASSERT_EQ(a.rfind(g), Piece::npos); | 
| 291   ASSERT_EQ(d.rfind(b), StringPiece::npos); | 299   ASSERT_EQ(d.rfind(b), Piece::npos); | 
| 292   ASSERT_EQ(e.rfind(b), StringPiece::npos); | 300   ASSERT_EQ(e.rfind(b), Piece::npos); | 
| 293   ASSERT_EQ(d.rfind(b, 4), StringPiece::npos); | 301   ASSERT_EQ(d.rfind(b, 4), Piece::npos); | 
| 294   ASSERT_EQ(e.rfind(b, 7), StringPiece::npos); | 302   ASSERT_EQ(e.rfind(b, 7), Piece::npos); | 
| 295   // empty string nonsense | 303   // empty string nonsense | 
| 296   ASSERT_EQ(d.rfind(d, 4), std::string().rfind(std::string())); | 304   ASSERT_EQ(d.rfind(d, 4), std::string().rfind(std::string())); | 
| 297   ASSERT_EQ(e.rfind(d, 7), std::string().rfind(std::string())); | 305   ASSERT_EQ(e.rfind(d, 7), std::string().rfind(std::string())); | 
| 298   ASSERT_EQ(d.rfind(e, 4), std::string().rfind(std::string())); | 306   ASSERT_EQ(d.rfind(e, 4), std::string().rfind(std::string())); | 
| 299   ASSERT_EQ(e.rfind(e, 7), std::string().rfind(std::string())); | 307   ASSERT_EQ(e.rfind(e, 7), std::string().rfind(std::string())); | 
| 300   ASSERT_EQ(d.rfind(d), std::string().rfind(std::string())); | 308   ASSERT_EQ(d.rfind(d), std::string().rfind(std::string())); | 
| 301   ASSERT_EQ(e.rfind(d), std::string().rfind(std::string())); | 309   ASSERT_EQ(e.rfind(d), std::string().rfind(std::string())); | 
| 302   ASSERT_EQ(d.rfind(e), std::string().rfind(std::string())); | 310   ASSERT_EQ(d.rfind(e), std::string().rfind(std::string())); | 
| 303   ASSERT_EQ(e.rfind(e), std::string().rfind(std::string())); | 311   ASSERT_EQ(e.rfind(e), std::string().rfind(std::string())); | 
| 304 | 312 | 
| 305   ASSERT_EQ(g.rfind('o'), 8U); | 313   ASSERT_EQ(g.rfind('o'), 8U); | 
| 306   ASSERT_EQ(g.rfind('q'), StringPiece::npos); | 314   ASSERT_EQ(g.rfind('q'), Piece::npos); | 
| 307   ASSERT_EQ(g.rfind('o', 8), 8U); | 315   ASSERT_EQ(g.rfind('o', 8), 8U); | 
| 308   ASSERT_EQ(g.rfind('o', 7), 4U); | 316   ASSERT_EQ(g.rfind('o', 7), 4U); | 
| 309   ASSERT_EQ(g.rfind('o', 3), StringPiece::npos); | 317   ASSERT_EQ(g.rfind('o', 3), Piece::npos); | 
| 310   ASSERT_EQ(f.rfind('\0'), 3U); | 318   ASSERT_EQ(f.rfind('\0'), 3U); | 
| 311   ASSERT_EQ(f.rfind('\0', 12), 3U); | 319   ASSERT_EQ(f.rfind('\0', 12), 3U); | 
| 312   ASSERT_EQ(f.rfind('3'), 2U); | 320   ASSERT_EQ(f.rfind('3'), 2U); | 
| 313   ASSERT_EQ(f.rfind('5'), 5U); | 321   ASSERT_EQ(f.rfind('5'), 5U); | 
| 314   // empty string nonsense | 322   // empty string nonsense | 
| 315   ASSERT_EQ(d.rfind('o'), StringPiece::npos); | 323   ASSERT_EQ(d.rfind('o'), Piece::npos); | 
| 316   ASSERT_EQ(e.rfind('o'), StringPiece::npos); | 324   ASSERT_EQ(e.rfind('o'), Piece::npos); | 
| 317   ASSERT_EQ(d.rfind('o', 4), StringPiece::npos); | 325   ASSERT_EQ(d.rfind('o', 4), Piece::npos); | 
| 318   ASSERT_EQ(e.rfind('o', 7), StringPiece::npos); | 326   ASSERT_EQ(e.rfind('o', 7), Piece::npos); | 
| 319 | 327 | 
| 320   ASSERT_EQ( | 328   TypeParam one_two_three_four(TestFixture::as_string("one,two:three;four")); | 
| 321       StringPiece("one,two:three;four").find_first_of(StringPiece(",:"), 1), | 329   TypeParam comma_colon(TestFixture::as_string(",:")); | 
| 322       3U); | 330   ASSERT_EQ(3U, Piece(one_two_three_four).find_first_of(comma_colon)); | 
| 323   ASSERT_EQ(a.find_first_of(b), 0U); | 331   ASSERT_EQ(a.find_first_of(b), 0U); | 
| 324   ASSERT_EQ(a.find_first_of(b, 0), 0U); | 332   ASSERT_EQ(a.find_first_of(b, 0), 0U); | 
| 325   ASSERT_EQ(a.find_first_of(b, 1), 1U); | 333   ASSERT_EQ(a.find_first_of(b, 1), 1U); | 
| 326   ASSERT_EQ(a.find_first_of(b, 2), 2U); | 334   ASSERT_EQ(a.find_first_of(b, 2), 2U); | 
| 327   ASSERT_EQ(a.find_first_of(b, 3), StringPiece::npos); | 335   ASSERT_EQ(a.find_first_of(b, 3), Piece::npos); | 
| 328   ASSERT_EQ(a.find_first_of(c), 23U); | 336   ASSERT_EQ(a.find_first_of(c), 23U); | 
| 329   ASSERT_EQ(a.find_first_of(c, 23), 23U); | 337   ASSERT_EQ(a.find_first_of(c, 23), 23U); | 
| 330   ASSERT_EQ(a.find_first_of(c, 24), 24U); | 338   ASSERT_EQ(a.find_first_of(c, 24), 24U); | 
| 331   ASSERT_EQ(a.find_first_of(c, 25), 25U); | 339   ASSERT_EQ(a.find_first_of(c, 25), 25U); | 
| 332   ASSERT_EQ(a.find_first_of(c, 26), StringPiece::npos); | 340   ASSERT_EQ(a.find_first_of(c, 26), Piece::npos); | 
| 333   ASSERT_EQ(g.find_first_of(b), 13U); | 341   ASSERT_EQ(g.find_first_of(b), 13U); | 
| 334   ASSERT_EQ(g.find_first_of(c), 0U); | 342   ASSERT_EQ(g.find_first_of(c), 0U); | 
| 335   ASSERT_EQ(a.find_first_of(f), StringPiece::npos); | 343   ASSERT_EQ(a.find_first_of(f), Piece::npos); | 
| 336   ASSERT_EQ(f.find_first_of(a), StringPiece::npos); | 344   ASSERT_EQ(f.find_first_of(a), Piece::npos); | 
| 337   // empty string nonsense | 345   // empty string nonsense | 
| 338   ASSERT_EQ(a.find_first_of(d), StringPiece::npos); | 346   ASSERT_EQ(a.find_first_of(d), Piece::npos); | 
| 339   ASSERT_EQ(a.find_first_of(e), StringPiece::npos); | 347   ASSERT_EQ(a.find_first_of(e), Piece::npos); | 
| 340   ASSERT_EQ(d.find_first_of(b), StringPiece::npos); | 348   ASSERT_EQ(d.find_first_of(b), Piece::npos); | 
| 341   ASSERT_EQ(e.find_first_of(b), StringPiece::npos); | 349   ASSERT_EQ(e.find_first_of(b), Piece::npos); | 
| 342   ASSERT_EQ(d.find_first_of(d), StringPiece::npos); | 350   ASSERT_EQ(d.find_first_of(d), Piece::npos); | 
| 343   ASSERT_EQ(e.find_first_of(d), StringPiece::npos); | 351   ASSERT_EQ(e.find_first_of(d), Piece::npos); | 
| 344   ASSERT_EQ(d.find_first_of(e), StringPiece::npos); | 352   ASSERT_EQ(d.find_first_of(e), Piece::npos); | 
| 345   ASSERT_EQ(e.find_first_of(e), StringPiece::npos); | 353   ASSERT_EQ(e.find_first_of(e), Piece::npos); | 
| 346 | 354 | 
| 347   ASSERT_EQ(a.find_first_not_of(b), 3U); | 355   ASSERT_EQ(a.find_first_not_of(b), 3U); | 
| 348   ASSERT_EQ(a.find_first_not_of(c), 0U); | 356   ASSERT_EQ(a.find_first_not_of(c), 0U); | 
| 349   ASSERT_EQ(b.find_first_not_of(a), StringPiece::npos); | 357   ASSERT_EQ(b.find_first_not_of(a), Piece::npos); | 
| 350   ASSERT_EQ(c.find_first_not_of(a), StringPiece::npos); | 358   ASSERT_EQ(c.find_first_not_of(a), Piece::npos); | 
| 351   ASSERT_EQ(f.find_first_not_of(a), 0U); | 359   ASSERT_EQ(f.find_first_not_of(a), 0U); | 
| 352   ASSERT_EQ(a.find_first_not_of(f), 0U); | 360   ASSERT_EQ(a.find_first_not_of(f), 0U); | 
| 353   ASSERT_EQ(a.find_first_not_of(d), 0U); | 361   ASSERT_EQ(a.find_first_not_of(d), 0U); | 
| 354   ASSERT_EQ(a.find_first_not_of(e), 0U); | 362   ASSERT_EQ(a.find_first_not_of(e), 0U); | 
| 355   // empty string nonsense | 363   // empty string nonsense | 
| 356   ASSERT_EQ(d.find_first_not_of(a), StringPiece::npos); | 364   ASSERT_EQ(d.find_first_not_of(a), Piece::npos); | 
| 357   ASSERT_EQ(e.find_first_not_of(a), StringPiece::npos); | 365   ASSERT_EQ(e.find_first_not_of(a), Piece::npos); | 
| 358   ASSERT_EQ(d.find_first_not_of(d), StringPiece::npos); | 366   ASSERT_EQ(d.find_first_not_of(d), Piece::npos); | 
| 359   ASSERT_EQ(e.find_first_not_of(d), StringPiece::npos); | 367   ASSERT_EQ(e.find_first_not_of(d), Piece::npos); | 
| 360   ASSERT_EQ(d.find_first_not_of(e), StringPiece::npos); | 368   ASSERT_EQ(d.find_first_not_of(e), Piece::npos); | 
| 361   ASSERT_EQ(e.find_first_not_of(e), StringPiece::npos); | 369   ASSERT_EQ(e.find_first_not_of(e), Piece::npos); | 
| 362 | 370 | 
| 363   StringPiece h("===="); | 371   TypeParam equals(TestFixture::as_string("====")); | 
| 364   ASSERT_EQ(h.find_first_not_of('='), StringPiece::npos); | 372   Piece h(equals); | 
| 365   ASSERT_EQ(h.find_first_not_of('=', 3), StringPiece::npos); | 373   ASSERT_EQ(h.find_first_not_of('='), Piece::npos); | 
|  | 374   ASSERT_EQ(h.find_first_not_of('=', 3), Piece::npos); | 
| 366   ASSERT_EQ(h.find_first_not_of('\0'), 0U); | 375   ASSERT_EQ(h.find_first_not_of('\0'), 0U); | 
| 367   ASSERT_EQ(g.find_first_not_of('x'), 2U); | 376   ASSERT_EQ(g.find_first_not_of('x'), 2U); | 
| 368   ASSERT_EQ(f.find_first_not_of('\0'), 0U); | 377   ASSERT_EQ(f.find_first_not_of('\0'), 0U); | 
| 369   ASSERT_EQ(f.find_first_not_of('\0', 3), 4U); | 378   ASSERT_EQ(f.find_first_not_of('\0', 3), 4U); | 
| 370   ASSERT_EQ(f.find_first_not_of('\0', 2), 2U); | 379   ASSERT_EQ(f.find_first_not_of('\0', 2), 2U); | 
| 371   // empty string nonsense | 380   // empty string nonsense | 
| 372   ASSERT_EQ(d.find_first_not_of('x'), StringPiece::npos); | 381   ASSERT_EQ(d.find_first_not_of('x'), Piece::npos); | 
| 373   ASSERT_EQ(e.find_first_not_of('x'), StringPiece::npos); | 382   ASSERT_EQ(e.find_first_not_of('x'), Piece::npos); | 
| 374   ASSERT_EQ(d.find_first_not_of('\0'), StringPiece::npos); | 383   ASSERT_EQ(d.find_first_not_of('\0'), Piece::npos); | 
| 375   ASSERT_EQ(e.find_first_not_of('\0'), StringPiece::npos); | 384   ASSERT_EQ(e.find_first_not_of('\0'), Piece::npos); | 
| 376 | 385 | 
| 377   //  StringPiece g("xx not found bb"); | 386   //  Piece g("xx not found bb"); | 
| 378   StringPiece i("56"); | 387   TypeParam fifty_six(TestFixture::as_string("56")); | 
| 379   ASSERT_EQ(h.find_last_of(a), StringPiece::npos); | 388   Piece i(fifty_six); | 
|  | 389   ASSERT_EQ(h.find_last_of(a), Piece::npos); | 
| 380   ASSERT_EQ(g.find_last_of(a), g.size()-1); | 390   ASSERT_EQ(g.find_last_of(a), g.size()-1); | 
| 381   ASSERT_EQ(a.find_last_of(b), 2U); | 391   ASSERT_EQ(a.find_last_of(b), 2U); | 
| 382   ASSERT_EQ(a.find_last_of(c), a.size()-1); | 392   ASSERT_EQ(a.find_last_of(c), a.size()-1); | 
| 383   ASSERT_EQ(f.find_last_of(i), 6U); | 393   ASSERT_EQ(f.find_last_of(i), 6U); | 
| 384   ASSERT_EQ(a.find_last_of('a'), 0U); | 394   ASSERT_EQ(a.find_last_of('a'), 0U); | 
| 385   ASSERT_EQ(a.find_last_of('b'), 1U); | 395   ASSERT_EQ(a.find_last_of('b'), 1U); | 
| 386   ASSERT_EQ(a.find_last_of('z'), 25U); | 396   ASSERT_EQ(a.find_last_of('z'), 25U); | 
| 387   ASSERT_EQ(a.find_last_of('a', 5), 0U); | 397   ASSERT_EQ(a.find_last_of('a', 5), 0U); | 
| 388   ASSERT_EQ(a.find_last_of('b', 5), 1U); | 398   ASSERT_EQ(a.find_last_of('b', 5), 1U); | 
| 389   ASSERT_EQ(a.find_last_of('b', 0), StringPiece::npos); | 399   ASSERT_EQ(a.find_last_of('b', 0), Piece::npos); | 
| 390   ASSERT_EQ(a.find_last_of('z', 25), 25U); | 400   ASSERT_EQ(a.find_last_of('z', 25), 25U); | 
| 391   ASSERT_EQ(a.find_last_of('z', 24), StringPiece::npos); | 401   ASSERT_EQ(a.find_last_of('z', 24), Piece::npos); | 
| 392   ASSERT_EQ(f.find_last_of(i, 5), 5U); | 402   ASSERT_EQ(f.find_last_of(i, 5), 5U); | 
| 393   ASSERT_EQ(f.find_last_of(i, 6), 6U); | 403   ASSERT_EQ(f.find_last_of(i, 6), 6U); | 
| 394   ASSERT_EQ(f.find_last_of(a, 4), StringPiece::npos); | 404   ASSERT_EQ(f.find_last_of(a, 4), Piece::npos); | 
| 395   // empty string nonsense | 405   // empty string nonsense | 
| 396   ASSERT_EQ(f.find_last_of(d), StringPiece::npos); | 406   ASSERT_EQ(f.find_last_of(d), Piece::npos); | 
| 397   ASSERT_EQ(f.find_last_of(e), StringPiece::npos); | 407   ASSERT_EQ(f.find_last_of(e), Piece::npos); | 
| 398   ASSERT_EQ(f.find_last_of(d, 4), StringPiece::npos); | 408   ASSERT_EQ(f.find_last_of(d, 4), Piece::npos); | 
| 399   ASSERT_EQ(f.find_last_of(e, 4), StringPiece::npos); | 409   ASSERT_EQ(f.find_last_of(e, 4), Piece::npos); | 
| 400   ASSERT_EQ(d.find_last_of(d), StringPiece::npos); | 410   ASSERT_EQ(d.find_last_of(d), Piece::npos); | 
| 401   ASSERT_EQ(d.find_last_of(e), StringPiece::npos); | 411   ASSERT_EQ(d.find_last_of(e), Piece::npos); | 
| 402   ASSERT_EQ(e.find_last_of(d), StringPiece::npos); | 412   ASSERT_EQ(e.find_last_of(d), Piece::npos); | 
| 403   ASSERT_EQ(e.find_last_of(e), StringPiece::npos); | 413   ASSERT_EQ(e.find_last_of(e), Piece::npos); | 
| 404   ASSERT_EQ(d.find_last_of(f), StringPiece::npos); | 414   ASSERT_EQ(d.find_last_of(f), Piece::npos); | 
| 405   ASSERT_EQ(e.find_last_of(f), StringPiece::npos); | 415   ASSERT_EQ(e.find_last_of(f), Piece::npos); | 
| 406   ASSERT_EQ(d.find_last_of(d, 4), StringPiece::npos); | 416   ASSERT_EQ(d.find_last_of(d, 4), Piece::npos); | 
| 407   ASSERT_EQ(d.find_last_of(e, 4), StringPiece::npos); | 417   ASSERT_EQ(d.find_last_of(e, 4), Piece::npos); | 
| 408   ASSERT_EQ(e.find_last_of(d, 4), StringPiece::npos); | 418   ASSERT_EQ(e.find_last_of(d, 4), Piece::npos); | 
| 409   ASSERT_EQ(e.find_last_of(e, 4), StringPiece::npos); | 419   ASSERT_EQ(e.find_last_of(e, 4), Piece::npos); | 
| 410   ASSERT_EQ(d.find_last_of(f, 4), StringPiece::npos); | 420   ASSERT_EQ(d.find_last_of(f, 4), Piece::npos); | 
| 411   ASSERT_EQ(e.find_last_of(f, 4), StringPiece::npos); | 421   ASSERT_EQ(e.find_last_of(f, 4), Piece::npos); | 
| 412 | 422 | 
| 413   ASSERT_EQ(a.find_last_not_of(b), a.size()-1); | 423   ASSERT_EQ(a.find_last_not_of(b), a.size()-1); | 
| 414   ASSERT_EQ(a.find_last_not_of(c), 22U); | 424   ASSERT_EQ(a.find_last_not_of(c), 22U); | 
| 415   ASSERT_EQ(b.find_last_not_of(a), StringPiece::npos); | 425   ASSERT_EQ(b.find_last_not_of(a), Piece::npos); | 
| 416   ASSERT_EQ(b.find_last_not_of(b), StringPiece::npos); | 426   ASSERT_EQ(b.find_last_not_of(b), Piece::npos); | 
| 417   ASSERT_EQ(f.find_last_not_of(i), 4U); | 427   ASSERT_EQ(f.find_last_not_of(i), 4U); | 
| 418   ASSERT_EQ(a.find_last_not_of(c, 24), 22U); | 428   ASSERT_EQ(a.find_last_not_of(c, 24), 22U); | 
| 419   ASSERT_EQ(a.find_last_not_of(b, 3), 3U); | 429   ASSERT_EQ(a.find_last_not_of(b, 3), 3U); | 
| 420   ASSERT_EQ(a.find_last_not_of(b, 2), StringPiece::npos); | 430   ASSERT_EQ(a.find_last_not_of(b, 2), Piece::npos); | 
| 421   // empty string nonsense | 431   // empty string nonsense | 
| 422   ASSERT_EQ(f.find_last_not_of(d), f.size()-1); | 432   ASSERT_EQ(f.find_last_not_of(d), f.size()-1); | 
| 423   ASSERT_EQ(f.find_last_not_of(e), f.size()-1); | 433   ASSERT_EQ(f.find_last_not_of(e), f.size()-1); | 
| 424   ASSERT_EQ(f.find_last_not_of(d, 4), 4U); | 434   ASSERT_EQ(f.find_last_not_of(d, 4), 4U); | 
| 425   ASSERT_EQ(f.find_last_not_of(e, 4), 4U); | 435   ASSERT_EQ(f.find_last_not_of(e, 4), 4U); | 
| 426   ASSERT_EQ(d.find_last_not_of(d), StringPiece::npos); | 436   ASSERT_EQ(d.find_last_not_of(d), Piece::npos); | 
| 427   ASSERT_EQ(d.find_last_not_of(e), StringPiece::npos); | 437   ASSERT_EQ(d.find_last_not_of(e), Piece::npos); | 
| 428   ASSERT_EQ(e.find_last_not_of(d), StringPiece::npos); | 438   ASSERT_EQ(e.find_last_not_of(d), Piece::npos); | 
| 429   ASSERT_EQ(e.find_last_not_of(e), StringPiece::npos); | 439   ASSERT_EQ(e.find_last_not_of(e), Piece::npos); | 
| 430   ASSERT_EQ(d.find_last_not_of(f), StringPiece::npos); | 440   ASSERT_EQ(d.find_last_not_of(f), Piece::npos); | 
| 431   ASSERT_EQ(e.find_last_not_of(f), StringPiece::npos); | 441   ASSERT_EQ(e.find_last_not_of(f), Piece::npos); | 
| 432   ASSERT_EQ(d.find_last_not_of(d, 4), StringPiece::npos); | 442   ASSERT_EQ(d.find_last_not_of(d, 4), Piece::npos); | 
| 433   ASSERT_EQ(d.find_last_not_of(e, 4), StringPiece::npos); | 443   ASSERT_EQ(d.find_last_not_of(e, 4), Piece::npos); | 
| 434   ASSERT_EQ(e.find_last_not_of(d, 4), StringPiece::npos); | 444   ASSERT_EQ(e.find_last_not_of(d, 4), Piece::npos); | 
| 435   ASSERT_EQ(e.find_last_not_of(e, 4), StringPiece::npos); | 445   ASSERT_EQ(e.find_last_not_of(e, 4), Piece::npos); | 
| 436   ASSERT_EQ(d.find_last_not_of(f, 4), StringPiece::npos); | 446   ASSERT_EQ(d.find_last_not_of(f, 4), Piece::npos); | 
| 437   ASSERT_EQ(e.find_last_not_of(f, 4), StringPiece::npos); | 447   ASSERT_EQ(e.find_last_not_of(f, 4), Piece::npos); | 
| 438 | 448 | 
| 439   ASSERT_EQ(h.find_last_not_of('x'), h.size() - 1); | 449   ASSERT_EQ(h.find_last_not_of('x'), h.size() - 1); | 
| 440   ASSERT_EQ(h.find_last_not_of('='), StringPiece::npos); | 450   ASSERT_EQ(h.find_last_not_of('='), Piece::npos); | 
| 441   ASSERT_EQ(b.find_last_not_of('c'), 1U); | 451   ASSERT_EQ(b.find_last_not_of('c'), 1U); | 
| 442   ASSERT_EQ(h.find_last_not_of('x', 2), 2U); | 452   ASSERT_EQ(h.find_last_not_of('x', 2), 2U); | 
| 443   ASSERT_EQ(h.find_last_not_of('=', 2), StringPiece::npos); | 453   ASSERT_EQ(h.find_last_not_of('=', 2), Piece::npos); | 
| 444   ASSERT_EQ(b.find_last_not_of('b', 1), 0U); | 454   ASSERT_EQ(b.find_last_not_of('b', 1), 0U); | 
| 445   // empty string nonsense | 455   // empty string nonsense | 
| 446   ASSERT_EQ(d.find_last_not_of('x'), StringPiece::npos); | 456   ASSERT_EQ(d.find_last_not_of('x'), Piece::npos); | 
| 447   ASSERT_EQ(e.find_last_not_of('x'), StringPiece::npos); | 457   ASSERT_EQ(e.find_last_not_of('x'), Piece::npos); | 
| 448   ASSERT_EQ(d.find_last_not_of('\0'), StringPiece::npos); | 458   ASSERT_EQ(d.find_last_not_of('\0'), Piece::npos); | 
| 449   ASSERT_EQ(e.find_last_not_of('\0'), StringPiece::npos); | 459   ASSERT_EQ(e.find_last_not_of('\0'), Piece::npos); | 
| 450 | 460 | 
| 451   ASSERT_EQ(a.substr(0, 3), b); | 461   ASSERT_EQ(a.substr(0, 3), b); | 
| 452   ASSERT_EQ(a.substr(23), c); | 462   ASSERT_EQ(a.substr(23), c); | 
| 453   ASSERT_EQ(a.substr(23, 3), c); | 463   ASSERT_EQ(a.substr(23, 3), c); | 
| 454   ASSERT_EQ(a.substr(23, 99), c); | 464   ASSERT_EQ(a.substr(23, 99), c); | 
| 455   ASSERT_EQ(a.substr(0), a); | 465   ASSERT_EQ(a.substr(0), a); | 
| 456   ASSERT_EQ(a.substr(3, 2), "de"); | 466   ASSERT_EQ(a.substr(3, 2), TestFixture::as_string("de")); | 
| 457   // empty string nonsense | 467   // empty string nonsense | 
| 458   ASSERT_EQ(a.substr(99, 2), e); | 468   ASSERT_EQ(a.substr(99, 2), e); | 
| 459   ASSERT_EQ(d.substr(99), e); | 469   ASSERT_EQ(d.substr(99), e); | 
| 460   ASSERT_EQ(d.substr(0, 99), e); | 470   ASSERT_EQ(d.substr(0, 99), e); | 
| 461   ASSERT_EQ(d.substr(99, 99), e); | 471   ASSERT_EQ(d.substr(99, 99), e); | 
| 462 } | 472 } | 
| 463 | 473 | 
| 464 TYPED_TEST(CommonStringPieceTest, CheckCustom) { | 474 TYPED_TEST(CommonStringPieceTest, CheckCustom) { | 
| 465   TypeParam foobar(TestFixture::as_string("foobar")); | 475   TypeParam foobar(TestFixture::as_string("foobar")); | 
| 466   BasicStringPiece<TypeParam> a(foobar); | 476   BasicStringPiece<TypeParam> a(foobar); | 
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 554   ASSERT_TRUE(a.ends_with(e)); | 564   ASSERT_TRUE(a.ends_with(e)); | 
| 555   ASSERT_TRUE(b.ends_with(s1)); | 565   ASSERT_TRUE(b.ends_with(s1)); | 
| 556   ASSERT_TRUE(b.ends_with(b)); | 566   ASSERT_TRUE(b.ends_with(b)); | 
| 557   ASSERT_TRUE(b.ends_with(e)); | 567   ASSERT_TRUE(b.ends_with(e)); | 
| 558   ASSERT_TRUE(e.ends_with("")); | 568   ASSERT_TRUE(e.ends_with("")); | 
| 559   ASSERT_TRUE(!a.ends_with(b)); | 569   ASSERT_TRUE(!a.ends_with(b)); | 
| 560   ASSERT_TRUE(!b.ends_with(a)); | 570   ASSERT_TRUE(!b.ends_with(a)); | 
| 561   ASSERT_TRUE(!e.ends_with(a)); | 571   ASSERT_TRUE(!e.ends_with(a)); | 
| 562 | 572 | 
| 563   StringPiece c; | 573   StringPiece c; | 
| 564   c.set(static_cast<const void*>("foobar"), 6); | 574   c.set("foobar", 6); | 
| 565   ASSERT_EQ(c, a); | 575   ASSERT_EQ(c, a); | 
| 566   c.set(static_cast<const void*>("foobar"), 0); | 576   c.set("foobar", 0); | 
| 567   ASSERT_EQ(c, e); | 577   ASSERT_EQ(c, e); | 
| 568   c.set(static_cast<const void*>("foobar"), 7); | 578   c.set("foobar", 7); | 
| 569   ASSERT_NE(c, a); | 579   ASSERT_NE(c, a); | 
| 570 } | 580 } | 
| 571 | 581 | 
| 572 TYPED_TEST(CommonStringPieceTest, CheckNULL) { | 582 TYPED_TEST(CommonStringPieceTest, CheckNULL) { | 
| 573   // we used to crash here, but now we don't. | 583   // we used to crash here, but now we don't. | 
| 574   BasicStringPiece<TypeParam> s(NULL); | 584   BasicStringPiece<TypeParam> s(NULL); | 
| 575   ASSERT_EQ(s.data(), (const typename TypeParam::value_type*)NULL); | 585   ASSERT_EQ(s.data(), (const typename TypeParam::value_type*)NULL); | 
| 576   ASSERT_EQ(s.size(), 0U); | 586   ASSERT_EQ(s.size(), 0U); | 
| 577 | 587 | 
| 578   s.set(NULL); | 588   s.set(NULL); | 
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 668   ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(NULL)); | 678   ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(NULL)); | 
| 669   ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(NULL, 0U)); | 679   ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(NULL, 0U)); | 
| 670   ASSERT_TRUE(empty == BasicStringPiece<TypeParam>()); | 680   ASSERT_TRUE(empty == BasicStringPiece<TypeParam>()); | 
| 671   ASSERT_TRUE(str == BasicStringPiece<TypeParam>(str.begin(), str.end())); | 681   ASSERT_TRUE(str == BasicStringPiece<TypeParam>(str.begin(), str.end())); | 
| 672   ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(str.begin(), str.begin())); | 682   ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(str.begin(), str.begin())); | 
| 673   ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(empty)); | 683   ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(empty)); | 
| 674   ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(empty.begin(), empty.end())); | 684   ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(empty.begin(), empty.end())); | 
| 675 } | 685 } | 
| 676 | 686 | 
| 677 }  // namespace base | 687 }  // namespace base | 
| OLD | NEW | 
|---|