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

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

Issue 2691193002: Added StringPiece overloads for base::JoinString. (Closed)
Patch Set: Document why we have an explicit initializer_list overload. Created 3 years, 10 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
OLDNEW
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 #include <stddef.h> 9 #include <stddef.h>
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 parts.push_back(ASCIIToUTF16("b")); 700 parts.push_back(ASCIIToUTF16("b"));
701 parts.push_back(ASCIIToUTF16("c")); 701 parts.push_back(ASCIIToUTF16("c"));
702 EXPECT_EQ(ASCIIToUTF16("a, b, c"), JoinString(parts, separator)); 702 EXPECT_EQ(ASCIIToUTF16("a, b, c"), JoinString(parts, separator));
703 703
704 parts.push_back(ASCIIToUTF16("")); 704 parts.push_back(ASCIIToUTF16(""));
705 EXPECT_EQ(ASCIIToUTF16("a, b, c, "), JoinString(parts, separator)); 705 EXPECT_EQ(ASCIIToUTF16("a, b, c, "), JoinString(parts, separator));
706 parts.push_back(ASCIIToUTF16(" ")); 706 parts.push_back(ASCIIToUTF16(" "));
707 EXPECT_EQ(ASCIIToUTF16("a|b|c|| "), JoinString(parts, ASCIIToUTF16("|"))); 707 EXPECT_EQ(ASCIIToUTF16("a|b|c|| "), JoinString(parts, ASCIIToUTF16("|")));
708 } 708 }
709 709
710 TEST(StringUtilTest, JoinStringPiece) {
711 std::string separator(", ");
712 std::vector<base::StringPiece> parts;
713 EXPECT_EQ(base::StringPiece(), JoinString(parts, separator));
714
715 parts.push_back("a");
716 EXPECT_EQ("a", JoinString(parts, separator));
717
718 parts.push_back("b");
719 parts.push_back("c");
720 EXPECT_EQ("a, b, c", JoinString(parts, separator));
721
722 parts.push_back(base::StringPiece());
723 EXPECT_EQ("a, b, c, ", JoinString(parts, separator));
724 parts.push_back(" ");
725 EXPECT_EQ("a|b|c|| ", JoinString(parts, "|"));
726 }
727
728 TEST(StringUtilTest, JoinStringPiece16) {
729 string16 separator = ASCIIToUTF16(", ");
730 std::vector<base::StringPiece16> parts;
731 EXPECT_EQ(base::StringPiece16(), JoinString(parts, separator));
732
733 const string16 kA = ASCIIToUTF16("a");
734 parts.push_back(kA);
735 EXPECT_EQ(ASCIIToUTF16("a"), JoinString(parts, separator));
736
737 const string16 kB = ASCIIToUTF16("b");
738 parts.push_back(kB);
739 const string16 kC = ASCIIToUTF16("c");
740 parts.push_back(kC);
741 EXPECT_EQ(ASCIIToUTF16("a, b, c"), JoinString(parts, separator));
742
743 parts.push_back(base::StringPiece16());
744 EXPECT_EQ(ASCIIToUTF16("a, b, c, "), JoinString(parts, separator));
745 const string16 kSpace = ASCIIToUTF16(" ");
746 parts.push_back(kSpace);
747 EXPECT_EQ(ASCIIToUTF16("a|b|c|| "), JoinString(parts, ASCIIToUTF16("|")));
748 }
749
750 TEST(StringUtilTest, JoinStringInitializerList) {
751 std::string separator(", ");
752 EXPECT_EQ(base::StringPiece(), JoinString({}, separator));
753
754 // With const char*s.
755 EXPECT_EQ("a", JoinString({"a"}, separator));
756 EXPECT_EQ("a, b, c", JoinString({"a", "b", "c"}, separator));
757 EXPECT_EQ("a, b, c, ", JoinString({"a", "b", "c", ""}, separator));
758 EXPECT_EQ("a|b|c|| ", JoinString({"a", "b", "c", "", " "}, "|"));
759
760 // With std::strings.
761 const std::string kA = "a";
762 const std::string kB = "b";
763 EXPECT_EQ("a, b", JoinString({kA, kB}, separator));
764
765 // With StringPieces.
766 const StringPiece kPieceA = kA;
767 const StringPiece kPieceB = kB;
768 EXPECT_EQ("a, b", JoinString({kPieceA, kPieceB}, separator));
769 }
770
771 TEST(StringUtilTest, JoinStringInitializerList16) {
772 string16 separator = ASCIIToUTF16(", ");
773 EXPECT_EQ(base::StringPiece16(), JoinString({}, separator));
774
775 // With string16s.
776 const string16 kA = ASCIIToUTF16("a");
777 EXPECT_EQ(ASCIIToUTF16("a"), JoinString({kA}, separator));
778
779 const string16 kB = ASCIIToUTF16("b");
780 const string16 kC = ASCIIToUTF16("c");
781 EXPECT_EQ(ASCIIToUTF16("a, b, c"), JoinString({kA, kB, kC}, separator));
782
783 const string16 kEmpty = ASCIIToUTF16("");
784 EXPECT_EQ(ASCIIToUTF16("a, b, c, "),
785 JoinString({kA, kB, kC, kEmpty}, separator));
786 const string16 kSpace = ASCIIToUTF16(" ");
787 EXPECT_EQ(ASCIIToUTF16("a|b|c|| "),
788 JoinString({kA, kB, kC, kEmpty, kSpace}, ASCIIToUTF16("|")));
789
790 // With StringPiece16s.
791 const StringPiece16 kPieceA = kA;
792 const StringPiece16 kPieceB = kB;
793 EXPECT_EQ(ASCIIToUTF16("a, b"), JoinString({kPieceA, kPieceB}, separator));
794 }
795
710 TEST(StringUtilTest, StartsWith) { 796 TEST(StringUtilTest, StartsWith) {
711 EXPECT_TRUE(StartsWith("javascript:url", "javascript", 797 EXPECT_TRUE(StartsWith("javascript:url", "javascript",
712 base::CompareCase::SENSITIVE)); 798 base::CompareCase::SENSITIVE));
713 EXPECT_FALSE(StartsWith("JavaScript:url", "javascript", 799 EXPECT_FALSE(StartsWith("JavaScript:url", "javascript",
714 base::CompareCase::SENSITIVE)); 800 base::CompareCase::SENSITIVE));
715 EXPECT_TRUE(StartsWith("javascript:url", "javascript", 801 EXPECT_TRUE(StartsWith("javascript:url", "javascript",
716 base::CompareCase::INSENSITIVE_ASCII)); 802 base::CompareCase::INSENSITIVE_ASCII));
717 EXPECT_TRUE(StartsWith("JavaScript:url", "javascript", 803 EXPECT_TRUE(StartsWith("JavaScript:url", "javascript",
718 base::CompareCase::INSENSITIVE_ASCII)); 804 base::CompareCase::INSENSITIVE_ASCII));
719 EXPECT_FALSE(StartsWith("java", "javascript", base::CompareCase::SENSITIVE)); 805 EXPECT_FALSE(StartsWith("java", "javascript", base::CompareCase::SENSITIVE));
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
1121 const std::string live = kLive; 1207 const std::string live = kLive;
1122 std::string dead = live; 1208 std::string dead = live;
1123 strncpy(WriteInto(&dead, 5), kDead, 4); 1209 strncpy(WriteInto(&dead, 5), kDead, 4);
1124 EXPECT_EQ(kDead, dead); 1210 EXPECT_EQ(kDead, dead);
1125 EXPECT_EQ(4u, dead.size()); 1211 EXPECT_EQ(4u, dead.size());
1126 EXPECT_EQ(kLive, live); 1212 EXPECT_EQ(kLive, live);
1127 EXPECT_EQ(4u, live.size()); 1213 EXPECT_EQ(4u, live.size());
1128 } 1214 }
1129 1215
1130 } // namespace base 1216 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698