OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 |
11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
(...skipping 844 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
856 | 856 |
857 ReplaceStringPlaceholders(ASCIIToUTF16("Hello, $2. Your number is $1."), | 857 ReplaceStringPlaceholders(ASCIIToUTF16("Hello, $2. Your number is $1."), |
858 subst, | 858 subst, |
859 &offsets); | 859 &offsets); |
860 EXPECT_EQ(2U, offsets.size()); | 860 EXPECT_EQ(2U, offsets.size()); |
861 EXPECT_EQ(25U, offsets[0]); | 861 EXPECT_EQ(25U, offsets[0]); |
862 EXPECT_EQ(7U, offsets[1]); | 862 EXPECT_EQ(7U, offsets[1]); |
863 offsets.clear(); | 863 offsets.clear(); |
864 } | 864 } |
865 | 865 |
866 TEST(StringUtilTest, ReplaceStringPlaceholdersTooFew) { | |
867 // Test whether replacestringplaceholders works as expected when there | |
868 // are fewer inputs than outputs. | |
869 std::vector<string16> subst; | |
870 subst.push_back(ASCIIToUTF16("9a")); | |
871 subst.push_back(ASCIIToUTF16("8b")); | |
872 subst.push_back(ASCIIToUTF16("7c")); | |
873 | |
874 string16 formatted = | |
875 ReplaceStringPlaceholders( | |
876 ASCIIToUTF16("$1a,$2b,$3c,$4d,$5e,$6f,$1g,$2h,$3i"), subst, NULL); | |
877 | |
878 EXPECT_EQ(formatted, ASCIIToUTF16("9aa,8bb,7cc,d,e,f,9ag,8bh,7ci")); | |
879 } | |
880 | |
881 TEST(StringUtilTest, ReplaceStringPlaceholders) { | 866 TEST(StringUtilTest, ReplaceStringPlaceholders) { |
882 std::vector<string16> subst; | 867 std::vector<string16> subst; |
883 subst.push_back(ASCIIToUTF16("9a")); | 868 subst.push_back(ASCIIToUTF16("9a")); |
884 subst.push_back(ASCIIToUTF16("8b")); | 869 subst.push_back(ASCIIToUTF16("8b")); |
885 subst.push_back(ASCIIToUTF16("7c")); | 870 subst.push_back(ASCIIToUTF16("7c")); |
886 subst.push_back(ASCIIToUTF16("6d")); | 871 subst.push_back(ASCIIToUTF16("6d")); |
887 subst.push_back(ASCIIToUTF16("5e")); | 872 subst.push_back(ASCIIToUTF16("5e")); |
888 subst.push_back(ASCIIToUTF16("4f")); | 873 subst.push_back(ASCIIToUTF16("4f")); |
889 subst.push_back(ASCIIToUTF16("3g")); | 874 subst.push_back(ASCIIToUTF16("3g")); |
890 subst.push_back(ASCIIToUTF16("2h")); | 875 subst.push_back(ASCIIToUTF16("2h")); |
891 subst.push_back(ASCIIToUTF16("1i")); | 876 subst.push_back(ASCIIToUTF16("1i")); |
892 | 877 |
893 string16 formatted = | 878 string16 formatted = |
894 ReplaceStringPlaceholders( | 879 ReplaceStringPlaceholders( |
895 ASCIIToUTF16("$1a,$2b,$3c,$4d,$5e,$6f,$7g,$8h,$9i"), subst, NULL); | 880 ASCIIToUTF16("$1a,$2b,$3c,$4d,$5e,$6f,$7g,$8h,$9i"), subst, NULL); |
896 | 881 |
897 EXPECT_EQ(formatted, ASCIIToUTF16("9aa,8bb,7cc,6dd,5ee,4ff,3gg,2hh,1ii")); | 882 EXPECT_EQ(formatted, ASCIIToUTF16("9aa,8bb,7cc,6dd,5ee,4ff,3gg,2hh,1ii")); |
898 } | 883 } |
899 | 884 |
900 TEST(StringUtilTest, ReplaceStringPlaceholdersMoreThan9Replacements) { | 885 TEST(StringUtilTest, ReplaceStringPlaceholdersTooFew) { |
| 886 // Test whether replacestringplaceholders works as expected when there |
| 887 // are fewer inputs than outputs. |
901 std::vector<string16> subst; | 888 std::vector<string16> subst; |
902 subst.push_back(ASCIIToUTF16("9a")); | 889 subst.push_back(ASCIIToUTF16("9a")); |
903 subst.push_back(ASCIIToUTF16("8b")); | 890 subst.push_back(ASCIIToUTF16("8b")); |
904 subst.push_back(ASCIIToUTF16("7c")); | 891 subst.push_back(ASCIIToUTF16("7c")); |
905 subst.push_back(ASCIIToUTF16("6d")); | |
906 subst.push_back(ASCIIToUTF16("5e")); | |
907 subst.push_back(ASCIIToUTF16("4f")); | |
908 subst.push_back(ASCIIToUTF16("3g")); | |
909 subst.push_back(ASCIIToUTF16("2h")); | |
910 subst.push_back(ASCIIToUTF16("1i")); | |
911 subst.push_back(ASCIIToUTF16("0j")); | |
912 subst.push_back(ASCIIToUTF16("-1k")); | |
913 subst.push_back(ASCIIToUTF16("-2l")); | |
914 subst.push_back(ASCIIToUTF16("-3m")); | |
915 subst.push_back(ASCIIToUTF16("-4n")); | |
916 | 892 |
917 string16 formatted = | 893 string16 formatted = |
918 ReplaceStringPlaceholders( | 894 ReplaceStringPlaceholders( |
919 ASCIIToUTF16("$1a,$2b,$3c,$4d,$5e,$6f,$7g,$8h,$9i," | 895 ASCIIToUTF16("$1a,$2b,$3c,$4d,$5e,$6f,$1g,$2h,$3i"), subst, NULL); |
920 "$10j,$11k,$12l,$13m,$14n,$1"), subst, NULL); | |
921 | 896 |
922 EXPECT_EQ(formatted, ASCIIToUTF16("9aa,8bb,7cc,6dd,5ee,4ff,3gg,2hh," | 897 EXPECT_EQ(formatted, ASCIIToUTF16("9aa,8bb,7cc,d,e,f,9ag,8bh,7ci")); |
923 "1ii,0jj,-1kk,-2ll,-3mm,-4nn,9a")); | |
924 } | 898 } |
925 | 899 |
926 TEST(StringUtilTest, StdStringReplaceStringPlaceholders) { | 900 TEST(StringUtilTest, StdStringReplaceStringPlaceholders) { |
927 std::vector<std::string> subst; | 901 std::vector<std::string> subst; |
928 subst.push_back("9a"); | 902 subst.push_back("9a"); |
929 subst.push_back("8b"); | 903 subst.push_back("8b"); |
930 subst.push_back("7c"); | 904 subst.push_back("7c"); |
931 subst.push_back("6d"); | 905 subst.push_back("6d"); |
932 subst.push_back("5e"); | 906 subst.push_back("5e"); |
933 subst.push_back("4f"); | 907 subst.push_back("4f"); |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1105 EXPECT_FALSE(ContainsOnlyChars("Hello", "")); | 1079 EXPECT_FALSE(ContainsOnlyChars("Hello", "")); |
1106 | 1080 |
1107 EXPECT_TRUE(ContainsOnlyChars("", "1234")); | 1081 EXPECT_TRUE(ContainsOnlyChars("", "1234")); |
1108 EXPECT_TRUE(ContainsOnlyChars("1", "1234")); | 1082 EXPECT_TRUE(ContainsOnlyChars("1", "1234")); |
1109 EXPECT_TRUE(ContainsOnlyChars("1", "4321")); | 1083 EXPECT_TRUE(ContainsOnlyChars("1", "4321")); |
1110 EXPECT_TRUE(ContainsOnlyChars("123", "4321")); | 1084 EXPECT_TRUE(ContainsOnlyChars("123", "4321")); |
1111 EXPECT_FALSE(ContainsOnlyChars("123a", "4321")); | 1085 EXPECT_FALSE(ContainsOnlyChars("123a", "4321")); |
1112 } | 1086 } |
1113 | 1087 |
1114 } // namespace base | 1088 } // namespace base |
OLD | NEW |