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

Side by Side Diff: base/string_util_unittest.cc

Issue 13145003: Rewrite std::string("") to std::string(), Linux edition. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ugh Created 7 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « base/process_util_unittest.cc ('k') | base/strings/string_split.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 <math.h> 5 #include <math.h>
6 #include <stdarg.h> 6 #include <stdarg.h>
7 7
8 #include <limits> 8 #include <limits>
9 #include <sstream> 9 #include <sstream>
10 10
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 TruncateUTF8ToByteSize(input, byte_size, output); 63 TruncateUTF8ToByteSize(input, byte_size, output);
64 return prev != output->length(); 64 return prev != output->length();
65 } 65 }
66 66
67 } // namespace 67 } // namespace
68 68
69 TEST(StringUtilTest, TruncateUTF8ToByteSize) { 69 TEST(StringUtilTest, TruncateUTF8ToByteSize) {
70 std::string output; 70 std::string output;
71 71
72 // Empty strings and invalid byte_size arguments 72 // Empty strings and invalid byte_size arguments
73 EXPECT_FALSE(Truncated("", 0, &output)); 73 EXPECT_FALSE(Truncated(std::string(), 0, &output));
74 EXPECT_EQ(output, ""); 74 EXPECT_EQ(output, "");
75 EXPECT_TRUE(Truncated("\xe1\x80\xbf", 0, &output)); 75 EXPECT_TRUE(Truncated("\xe1\x80\xbf", 0, &output));
76 EXPECT_EQ(output, ""); 76 EXPECT_EQ(output, "");
77 EXPECT_FALSE(Truncated("\xe1\x80\xbf", -1, &output)); 77 EXPECT_FALSE(Truncated("\xe1\x80\xbf", -1, &output));
78 EXPECT_FALSE(Truncated("\xe1\x80\xbf", 4, &output)); 78 EXPECT_FALSE(Truncated("\xe1\x80\xbf", 4, &output));
79 79
80 // Testing the truncation of valid UTF8 correctly 80 // Testing the truncation of valid UTF8 correctly
81 EXPECT_TRUE(Truncated("abc", 2, &output)); 81 EXPECT_TRUE(Truncated("abc", 2, &output));
82 EXPECT_EQ(output, "ab"); 82 EXPECT_EQ(output, "ab");
83 EXPECT_TRUE(Truncated("\xc2\x81\xc2\x81", 2, &output)); 83 EXPECT_TRUE(Truncated("\xc2\x81\xc2\x81", 2, &output));
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 }; 312 };
313 313
314 TEST(StringUtilTest, CollapseWhitespaceASCII) { 314 TEST(StringUtilTest, CollapseWhitespaceASCII) {
315 for (size_t i = 0; i < arraysize(collapse_cases_ascii); ++i) { 315 for (size_t i = 0; i < arraysize(collapse_cases_ascii); ++i) {
316 const collapse_case_ascii& value = collapse_cases_ascii[i]; 316 const collapse_case_ascii& value = collapse_cases_ascii[i];
317 EXPECT_EQ(value.output, CollapseWhitespaceASCII(value.input, value.trim)); 317 EXPECT_EQ(value.output, CollapseWhitespaceASCII(value.input, value.trim));
318 } 318 }
319 } 319 }
320 320
321 TEST(StringUtilTest, ContainsOnlyWhitespaceASCII) { 321 TEST(StringUtilTest, ContainsOnlyWhitespaceASCII) {
322 EXPECT_TRUE(ContainsOnlyWhitespaceASCII("")); 322 EXPECT_TRUE(ContainsOnlyWhitespaceASCII(std::string()));
323 EXPECT_TRUE(ContainsOnlyWhitespaceASCII(" ")); 323 EXPECT_TRUE(ContainsOnlyWhitespaceASCII(" "));
324 EXPECT_TRUE(ContainsOnlyWhitespaceASCII("\t")); 324 EXPECT_TRUE(ContainsOnlyWhitespaceASCII("\t"));
325 EXPECT_TRUE(ContainsOnlyWhitespaceASCII("\t \r \n ")); 325 EXPECT_TRUE(ContainsOnlyWhitespaceASCII("\t \r \n "));
326 EXPECT_FALSE(ContainsOnlyWhitespaceASCII("a")); 326 EXPECT_FALSE(ContainsOnlyWhitespaceASCII("a"));
327 EXPECT_FALSE(ContainsOnlyWhitespaceASCII("\thello\r \n ")); 327 EXPECT_FALSE(ContainsOnlyWhitespaceASCII("\thello\r \n "));
328 } 328 }
329 329
330 TEST(StringUtilTest, ContainsOnlyWhitespace) { 330 TEST(StringUtilTest, ContainsOnlyWhitespace) {
331 EXPECT_TRUE(ContainsOnlyWhitespace(string16())); 331 EXPECT_TRUE(ContainsOnlyWhitespace(string16()));
332 EXPECT_TRUE(ContainsOnlyWhitespace(ASCIIToUTF16(" "))); 332 EXPECT_TRUE(ContainsOnlyWhitespace(ASCIIToUTF16(" ")));
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
705 r.clear(); 705 r.clear();
706 706
707 size = Tokenize(STR("one, two, three,"), STR(","), &r); 707 size = Tokenize(STR("one, two, three,"), STR(","), &r);
708 EXPECT_EQ(3U, size); 708 EXPECT_EQ(3U, size);
709 ASSERT_EQ(3U, r.size()); 709 ASSERT_EQ(3U, r.size());
710 EXPECT_EQ(r[0], STR("one")); 710 EXPECT_EQ(r[0], STR("one"));
711 EXPECT_EQ(r[1], STR(" two")); 711 EXPECT_EQ(r[1], STR(" two"));
712 EXPECT_EQ(r[2], STR(" three")); 712 EXPECT_EQ(r[2], STR(" three"));
713 r.clear(); 713 r.clear();
714 714
715 size = Tokenize(STR(""), STR(","), &r); 715 size = Tokenize(STR(), STR(","), &r);
716 EXPECT_EQ(0U, size); 716 EXPECT_EQ(0U, size);
717 ASSERT_EQ(0U, r.size()); 717 ASSERT_EQ(0U, r.size());
718 r.clear(); 718 r.clear();
719 719
720 size = Tokenize(STR(","), STR(","), &r); 720 size = Tokenize(STR(","), STR(","), &r);
721 EXPECT_EQ(0U, size); 721 EXPECT_EQ(0U, size);
722 ASSERT_EQ(0U, r.size()); 722 ASSERT_EQ(0U, r.size());
723 r.clear(); 723 r.clear();
724 724
725 size = Tokenize(STR(",;:."), STR(".:;,"), &r); 725 size = Tokenize(STR(",;:."), STR(".:;,"), &r);
(...skipping 28 matching lines...) Expand all
754 std::vector<std::string> in; 754 std::vector<std::string> in;
755 EXPECT_EQ("", JoinString(in, ',')); 755 EXPECT_EQ("", JoinString(in, ','));
756 756
757 in.push_back("a"); 757 in.push_back("a");
758 EXPECT_EQ("a", JoinString(in, ',')); 758 EXPECT_EQ("a", JoinString(in, ','));
759 759
760 in.push_back("b"); 760 in.push_back("b");
761 in.push_back("c"); 761 in.push_back("c");
762 EXPECT_EQ("a,b,c", JoinString(in, ',')); 762 EXPECT_EQ("a,b,c", JoinString(in, ','));
763 763
764 in.push_back(""); 764 in.push_back(std::string());
765 EXPECT_EQ("a,b,c,", JoinString(in, ',')); 765 EXPECT_EQ("a,b,c,", JoinString(in, ','));
766 in.push_back(" "); 766 in.push_back(" ");
767 EXPECT_EQ("a|b|c|| ", JoinString(in, '|')); 767 EXPECT_EQ("a|b|c|| ", JoinString(in, '|'));
768 } 768 }
769 769
770 // Test for JoinString overloaded with std::string separator 770 // Test for JoinString overloaded with std::string separator
771 TEST(StringUtilTest, JoinStringWithString) { 771 TEST(StringUtilTest, JoinStringWithString) {
772 std::string separator(", "); 772 std::string separator(", ");
773 std::vector<std::string> parts; 773 std::vector<std::string> parts;
774 EXPECT_EQ(std::string(), JoinString(parts, separator)); 774 EXPECT_EQ(std::string(), JoinString(parts, separator));
775 775
776 parts.push_back("a"); 776 parts.push_back("a");
777 EXPECT_EQ("a", JoinString(parts, separator)); 777 EXPECT_EQ("a", JoinString(parts, separator));
778 778
779 parts.push_back("b"); 779 parts.push_back("b");
780 parts.push_back("c"); 780 parts.push_back("c");
781 EXPECT_EQ("a, b, c", JoinString(parts, separator)); 781 EXPECT_EQ("a, b, c", JoinString(parts, separator));
782 782
783 parts.push_back(""); 783 parts.push_back(std::string());
784 EXPECT_EQ("a, b, c, ", JoinString(parts, separator)); 784 EXPECT_EQ("a, b, c, ", JoinString(parts, separator));
785 parts.push_back(" "); 785 parts.push_back(" ");
786 EXPECT_EQ("a|b|c|| ", JoinString(parts, "|")); 786 EXPECT_EQ("a|b|c|| ", JoinString(parts, "|"));
787 } 787 }
788 788
789 // Test for JoinString overloaded with string16 separator 789 // Test for JoinString overloaded with string16 separator
790 TEST(StringUtilTest, JoinStringWithString16) { 790 TEST(StringUtilTest, JoinStringWithString16) {
791 string16 separator = ASCIIToUTF16(", "); 791 string16 separator = ASCIIToUTF16(", ");
792 std::vector<string16> parts; 792 std::vector<string16> parts;
793 EXPECT_EQ(string16(), JoinString(parts, separator)); 793 EXPECT_EQ(string16(), JoinString(parts, separator));
(...skipping 11 matching lines...) Expand all
805 EXPECT_EQ(ASCIIToUTF16("a|b|c|| "), JoinString(parts, ASCIIToUTF16("|"))); 805 EXPECT_EQ(ASCIIToUTF16("a|b|c|| "), JoinString(parts, ASCIIToUTF16("|")));
806 } 806 }
807 807
808 TEST(StringUtilTest, StartsWith) { 808 TEST(StringUtilTest, StartsWith) {
809 EXPECT_TRUE(StartsWithASCII("javascript:url", "javascript", true)); 809 EXPECT_TRUE(StartsWithASCII("javascript:url", "javascript", true));
810 EXPECT_FALSE(StartsWithASCII("JavaScript:url", "javascript", true)); 810 EXPECT_FALSE(StartsWithASCII("JavaScript:url", "javascript", true));
811 EXPECT_TRUE(StartsWithASCII("javascript:url", "javascript", false)); 811 EXPECT_TRUE(StartsWithASCII("javascript:url", "javascript", false));
812 EXPECT_TRUE(StartsWithASCII("JavaScript:url", "javascript", false)); 812 EXPECT_TRUE(StartsWithASCII("JavaScript:url", "javascript", false));
813 EXPECT_FALSE(StartsWithASCII("java", "javascript", true)); 813 EXPECT_FALSE(StartsWithASCII("java", "javascript", true));
814 EXPECT_FALSE(StartsWithASCII("java", "javascript", false)); 814 EXPECT_FALSE(StartsWithASCII("java", "javascript", false));
815 EXPECT_FALSE(StartsWithASCII("", "javascript", false)); 815 EXPECT_FALSE(StartsWithASCII(std::string(), "javascript", false));
816 EXPECT_FALSE(StartsWithASCII("", "javascript", true)); 816 EXPECT_FALSE(StartsWithASCII(std::string(), "javascript", true));
817 EXPECT_TRUE(StartsWithASCII("java", "", false)); 817 EXPECT_TRUE(StartsWithASCII("java", std::string(), false));
818 EXPECT_TRUE(StartsWithASCII("java", "", true)); 818 EXPECT_TRUE(StartsWithASCII("java", std::string(), true));
819 819
820 EXPECT_TRUE(StartsWith(L"javascript:url", L"javascript", true)); 820 EXPECT_TRUE(StartsWith(L"javascript:url", L"javascript", true));
821 EXPECT_FALSE(StartsWith(L"JavaScript:url", L"javascript", true)); 821 EXPECT_FALSE(StartsWith(L"JavaScript:url", L"javascript", true));
822 EXPECT_TRUE(StartsWith(L"javascript:url", L"javascript", false)); 822 EXPECT_TRUE(StartsWith(L"javascript:url", L"javascript", false));
823 EXPECT_TRUE(StartsWith(L"JavaScript:url", L"javascript", false)); 823 EXPECT_TRUE(StartsWith(L"JavaScript:url", L"javascript", false));
824 EXPECT_FALSE(StartsWith(L"java", L"javascript", true)); 824 EXPECT_FALSE(StartsWith(L"java", L"javascript", true));
825 EXPECT_FALSE(StartsWith(L"java", L"javascript", false)); 825 EXPECT_FALSE(StartsWith(L"java", L"javascript", false));
826 EXPECT_FALSE(StartsWith(L"", L"javascript", false)); 826 EXPECT_FALSE(StartsWith(std::wstring(), L"javascript", false));
827 EXPECT_FALSE(StartsWith(L"", L"javascript", true)); 827 EXPECT_FALSE(StartsWith(std::wstring(), L"javascript", true));
828 EXPECT_TRUE(StartsWith(L"java", L"", false)); 828 EXPECT_TRUE(StartsWith(L"java", std::wstring(), false));
829 EXPECT_TRUE(StartsWith(L"java", L"", true)); 829 EXPECT_TRUE(StartsWith(L"java", std::wstring(), true));
830 } 830 }
831 831
832 TEST(StringUtilTest, EndsWith) { 832 TEST(StringUtilTest, EndsWith) {
833 EXPECT_TRUE(EndsWith(L"Foo.plugin", L".plugin", true)); 833 EXPECT_TRUE(EndsWith(L"Foo.plugin", L".plugin", true));
834 EXPECT_FALSE(EndsWith(L"Foo.Plugin", L".plugin", true)); 834 EXPECT_FALSE(EndsWith(L"Foo.Plugin", L".plugin", true));
835 EXPECT_TRUE(EndsWith(L"Foo.plugin", L".plugin", false)); 835 EXPECT_TRUE(EndsWith(L"Foo.plugin", L".plugin", false));
836 EXPECT_TRUE(EndsWith(L"Foo.Plugin", L".plugin", false)); 836 EXPECT_TRUE(EndsWith(L"Foo.Plugin", L".plugin", false));
837 EXPECT_FALSE(EndsWith(L".plug", L".plugin", true)); 837 EXPECT_FALSE(EndsWith(L".plug", L".plugin", true));
838 EXPECT_FALSE(EndsWith(L".plug", L".plugin", false)); 838 EXPECT_FALSE(EndsWith(L".plug", L".plugin", false));
839 EXPECT_FALSE(EndsWith(L"Foo.plugin Bar", L".plugin", true)); 839 EXPECT_FALSE(EndsWith(L"Foo.plugin Bar", L".plugin", true));
840 EXPECT_FALSE(EndsWith(L"Foo.plugin Bar", L".plugin", false)); 840 EXPECT_FALSE(EndsWith(L"Foo.plugin Bar", L".plugin", false));
841 EXPECT_FALSE(EndsWith(L"", L".plugin", false)); 841 EXPECT_FALSE(EndsWith(std::wstring(), L".plugin", false));
842 EXPECT_FALSE(EndsWith(L"", L".plugin", true)); 842 EXPECT_FALSE(EndsWith(std::wstring(), L".plugin", true));
843 EXPECT_TRUE(EndsWith(L"Foo.plugin", L"", false)); 843 EXPECT_TRUE(EndsWith(L"Foo.plugin", std::wstring(), false));
844 EXPECT_TRUE(EndsWith(L"Foo.plugin", L"", true)); 844 EXPECT_TRUE(EndsWith(L"Foo.plugin", std::wstring(), true));
845 EXPECT_TRUE(EndsWith(L".plugin", L".plugin", false)); 845 EXPECT_TRUE(EndsWith(L".plugin", L".plugin", false));
846 EXPECT_TRUE(EndsWith(L".plugin", L".plugin", true)); 846 EXPECT_TRUE(EndsWith(L".plugin", L".plugin", true));
847 EXPECT_TRUE(EndsWith(L"", L"", false)); 847 EXPECT_TRUE(EndsWith(std::wstring(), std::wstring(), false));
848 EXPECT_TRUE(EndsWith(L"", L"", true)); 848 EXPECT_TRUE(EndsWith(std::wstring(), std::wstring(), true));
849 } 849 }
850 850
851 TEST(StringUtilTest, GetStringFWithOffsets) { 851 TEST(StringUtilTest, GetStringFWithOffsets) {
852 std::vector<string16> subst; 852 std::vector<string16> subst;
853 subst.push_back(ASCIIToUTF16("1")); 853 subst.push_back(ASCIIToUTF16("1"));
854 subst.push_back(ASCIIToUTF16("2")); 854 subst.push_back(ASCIIToUTF16("2"));
855 std::vector<size_t> offsets; 855 std::vector<size_t> offsets;
856 856
857 ReplaceStringPlaceholders(ASCIIToUTF16("Hello, $1. Your number is $2."), 857 ReplaceStringPlaceholders(ASCIIToUTF16("Hello, $1. Your number is $2."),
858 subst, 858 subst,
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
1135 cases[i].replace_with, 1135 cases[i].replace_with,
1136 &output); 1136 &output);
1137 EXPECT_EQ(cases[i].result, result); 1137 EXPECT_EQ(cases[i].result, result);
1138 EXPECT_EQ(cases[i].output, output); 1138 EXPECT_EQ(cases[i].output, output);
1139 } 1139 }
1140 } 1140 }
1141 1141
1142 TEST(StringUtilTest, ContainsOnlyChars) { 1142 TEST(StringUtilTest, ContainsOnlyChars) {
1143 // Providing an empty list of characters should return false but for the empty 1143 // Providing an empty list of characters should return false but for the empty
1144 // string. 1144 // string.
1145 EXPECT_TRUE(ContainsOnlyChars("", "")); 1145 EXPECT_TRUE(ContainsOnlyChars(std::string(), std::string()));
1146 EXPECT_FALSE(ContainsOnlyChars("Hello", "")); 1146 EXPECT_FALSE(ContainsOnlyChars("Hello", std::string()));
1147 1147
1148 EXPECT_TRUE(ContainsOnlyChars("", "1234")); 1148 EXPECT_TRUE(ContainsOnlyChars(std::string(), "1234"));
1149 EXPECT_TRUE(ContainsOnlyChars("1", "1234")); 1149 EXPECT_TRUE(ContainsOnlyChars("1", "1234"));
1150 EXPECT_TRUE(ContainsOnlyChars("1", "4321")); 1150 EXPECT_TRUE(ContainsOnlyChars("1", "4321"));
1151 EXPECT_TRUE(ContainsOnlyChars("123", "4321")); 1151 EXPECT_TRUE(ContainsOnlyChars("123", "4321"));
1152 EXPECT_FALSE(ContainsOnlyChars("123a", "4321")); 1152 EXPECT_FALSE(ContainsOnlyChars("123a", "4321"));
1153 } 1153 }
1154 1154
1155 class WriteIntoTest : public testing::Test { 1155 class WriteIntoTest : public testing::Test {
1156 protected: 1156 protected:
1157 static void WritesCorrectly(size_t num_chars) { 1157 static void WritesCorrectly(size_t num_chars) {
1158 std::string buffer; 1158 std::string buffer;
(...skipping 22 matching lines...) Expand all
1181 const std::string live = kLive; 1181 const std::string live = kLive;
1182 std::string dead = live; 1182 std::string dead = live;
1183 strncpy(WriteInto(&dead, 5), kDead, 4); 1183 strncpy(WriteInto(&dead, 5), kDead, 4);
1184 EXPECT_EQ(kDead, dead); 1184 EXPECT_EQ(kDead, dead);
1185 EXPECT_EQ(4u, dead.size()); 1185 EXPECT_EQ(4u, dead.size());
1186 EXPECT_EQ(kLive, live); 1186 EXPECT_EQ(kLive, live);
1187 EXPECT_EQ(4u, live.size()); 1187 EXPECT_EQ(4u, live.size());
1188 } 1188 }
1189 1189
1190 } // namespace base 1190 } // namespace base
OLDNEW
« no previous file with comments | « base/process_util_unittest.cc ('k') | base/strings/string_split.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698