Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(452)

Side by Side Diff: base/strings/string_piece_unittest.cc

Issue 2758163003: Use string(StringPiece) instead of StringPiece::as_string(). (Closed)
Patch Set: Add StringPiece unittests. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/strings/string_piece.h ('k') | net/spdy/hpack/hpack_entry.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/strings/string16.h" 9 #include "base/strings/string16.h"
10 #include "base/strings/string_piece.h" 10 #include "base/strings/string_piece.h"
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 ASSERT_EQ(a.rfind(b), 0U); 288 ASSERT_EQ(a.rfind(b), 0U);
289 ASSERT_EQ(a.rfind(b, 1), 0U); 289 ASSERT_EQ(a.rfind(b, 1), 0U);
290 ASSERT_EQ(a.rfind(c), 23U); 290 ASSERT_EQ(a.rfind(c), 23U);
291 ASSERT_EQ(a.rfind(c, 22U), Piece::npos); 291 ASSERT_EQ(a.rfind(c, 22U), Piece::npos);
292 ASSERT_EQ(a.rfind(c, 1U), Piece::npos); 292 ASSERT_EQ(a.rfind(c, 1U), Piece::npos);
293 ASSERT_EQ(a.rfind(c, 0U), Piece::npos); 293 ASSERT_EQ(a.rfind(c, 0U), Piece::npos);
294 ASSERT_EQ(b.rfind(c), Piece::npos); 294 ASSERT_EQ(b.rfind(c), Piece::npos);
295 ASSERT_EQ(b.rfind(c, 0U), Piece::npos); 295 ASSERT_EQ(b.rfind(c, 0U), Piece::npos);
296 ASSERT_EQ(a.rfind(d), static_cast<size_t>(a.as_string().rfind(TypeParam()))); 296 ASSERT_EQ(a.rfind(d), static_cast<size_t>(a.as_string().rfind(TypeParam())));
297 ASSERT_EQ(a.rfind(e), a.as_string().rfind(TypeParam())); 297 ASSERT_EQ(a.rfind(e), a.as_string().rfind(TypeParam()));
298 ASSERT_EQ(a.rfind(d), static_cast<size_t>(TypeParam(a).rfind(TypeParam())));
299 ASSERT_EQ(a.rfind(e), TypeParam(a).rfind(TypeParam()));
298 ASSERT_EQ(a.rfind(d, 12), 12U); 300 ASSERT_EQ(a.rfind(d, 12), 12U);
299 ASSERT_EQ(a.rfind(e, 17), 17U); 301 ASSERT_EQ(a.rfind(e, 17), 17U);
300 ASSERT_EQ(a.rfind(g), Piece::npos); 302 ASSERT_EQ(a.rfind(g), Piece::npos);
301 ASSERT_EQ(d.rfind(b), Piece::npos); 303 ASSERT_EQ(d.rfind(b), Piece::npos);
302 ASSERT_EQ(e.rfind(b), Piece::npos); 304 ASSERT_EQ(e.rfind(b), Piece::npos);
303 ASSERT_EQ(d.rfind(b, 4), Piece::npos); 305 ASSERT_EQ(d.rfind(b, 4), Piece::npos);
304 ASSERT_EQ(e.rfind(b, 7), Piece::npos); 306 ASSERT_EQ(e.rfind(b, 7), Piece::npos);
305 // empty string nonsense 307 // empty string nonsense
306 ASSERT_EQ(d.rfind(d, 4), std::string().rfind(std::string())); 308 ASSERT_EQ(d.rfind(d, 4), std::string().rfind(std::string()));
307 ASSERT_EQ(e.rfind(d, 7), std::string().rfind(std::string())); 309 ASSERT_EQ(e.rfind(d, 7), std::string().rfind(std::string()));
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 c.set(foobar.c_str(), 0); 513 c.set(foobar.c_str(), 0);
512 ASSERT_EQ(c, e); 514 ASSERT_EQ(c, e);
513 c.set(foobar.c_str(), 7); // Note, has an embedded NULL 515 c.set(foobar.c_str(), 7); // Note, has an embedded NULL
514 ASSERT_NE(c, a); 516 ASSERT_NE(c, a);
515 517
516 // as_string 518 // as_string
517 TypeParam s3(a.as_string().c_str(), 7); // Note, has an embedded NULL 519 TypeParam s3(a.as_string().c_str(), 7); // Note, has an embedded NULL
518 ASSERT_TRUE(c == s3); 520 ASSERT_TRUE(c == s3);
519 TypeParam s4(e.as_string()); 521 TypeParam s4(e.as_string());
520 ASSERT_TRUE(s4.empty()); 522 ASSERT_TRUE(s4.empty());
523
524 // operator STRING_TYPE()
525 TypeParam s5(TypeParam(a).c_str(), 7); // Note, has an embedded NULL
526 ASSERT_TRUE(c == s5);
527 TypeParam s6(e);
528 ASSERT_TRUE(s6.empty());
521 } 529 }
522 530
523 TEST(StringPieceTest, CheckCustom) { 531 TEST(StringPieceTest, CheckCustom) {
524 StringPiece a("foobar"); 532 StringPiece a("foobar");
525 std::string s1("123"); 533 std::string s1("123");
526 s1 += '\0'; 534 s1 += '\0';
527 s1 += "456"; 535 s1 += "456";
528 StringPiece b(s1); 536 StringPiece b(s1);
529 StringPiece e; 537 StringPiece e;
530 std::string s2; 538 std::string s2;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 TYPED_TEST(CommonStringPieceTest, CheckNULL) { 592 TYPED_TEST(CommonStringPieceTest, CheckNULL) {
585 // we used to crash here, but now we don't. 593 // we used to crash here, but now we don't.
586 BasicStringPiece<TypeParam> s(NULL); 594 BasicStringPiece<TypeParam> s(NULL);
587 ASSERT_EQ(s.data(), (const typename TypeParam::value_type*)NULL); 595 ASSERT_EQ(s.data(), (const typename TypeParam::value_type*)NULL);
588 ASSERT_EQ(s.size(), 0U); 596 ASSERT_EQ(s.size(), 0U);
589 597
590 s.set(NULL); 598 s.set(NULL);
591 ASSERT_EQ(s.data(), (const typename TypeParam::value_type*)NULL); 599 ASSERT_EQ(s.data(), (const typename TypeParam::value_type*)NULL);
592 ASSERT_EQ(s.size(), 0U); 600 ASSERT_EQ(s.size(), 0U);
593 601
594 TypeParam str = s.as_string(); 602 TypeParam str(s);
603 ASSERT_EQ(str.length(), 0U);
604 ASSERT_EQ(str, TypeParam());
605
606 str = s.as_string();
595 ASSERT_EQ(str.length(), 0U); 607 ASSERT_EQ(str.length(), 0U);
596 ASSERT_EQ(str, TypeParam()); 608 ASSERT_EQ(str, TypeParam());
597 } 609 }
598 610
599 TYPED_TEST(CommonStringPieceTest, CheckComparisons2) { 611 TYPED_TEST(CommonStringPieceTest, CheckComparisons2) {
600 TypeParam alphabet(TestFixture::as_string("abcdefghijklmnopqrstuvwxyz")); 612 TypeParam alphabet(TestFixture::as_string("abcdefghijklmnopqrstuvwxyz"));
601 TypeParam alphabet_z(TestFixture::as_string("abcdefghijklmnopqrstuvwxyzz")); 613 TypeParam alphabet_z(TestFixture::as_string("abcdefghijklmnopqrstuvwxyzz"));
602 TypeParam alphabet_y(TestFixture::as_string("abcdefghijklmnopqrstuvwxyy")); 614 TypeParam alphabet_y(TestFixture::as_string("abcdefghijklmnopqrstuvwxyy"));
603 BasicStringPiece<TypeParam> abc(alphabet); 615 BasicStringPiece<TypeParam> abc(alphabet);
604 616
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(NULL, 694 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(NULL,
683 static_cast<typename BasicStringPiece<TypeParam>::size_type>(0))); 695 static_cast<typename BasicStringPiece<TypeParam>::size_type>(0)));
684 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>()); 696 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>());
685 ASSERT_TRUE(str == BasicStringPiece<TypeParam>(str.begin(), str.end())); 697 ASSERT_TRUE(str == BasicStringPiece<TypeParam>(str.begin(), str.end()));
686 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(str.begin(), str.begin())); 698 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(str.begin(), str.begin()));
687 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(empty)); 699 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(empty));
688 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(empty.begin(), empty.end())); 700 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(empty.begin(), empty.end()));
689 } 701 }
690 702
691 } // namespace base 703 } // namespace base
OLDNEW
« no previous file with comments | « base/strings/string_piece.h ('k') | net/spdy/hpack/hpack_entry.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698