OLD | NEW |
1 // Copyright (c) 2010 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 |
(...skipping 1038 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1049 { L"%f %d %o %u", true }, | 1049 { L"%f %d %o %u", true }, |
1050 { L"%-8d (%02.1f%)", true }, | 1050 { L"%-8d (%02.1f%)", true }, |
1051 { L"% 10s", false }, | 1051 { L"% 10s", false }, |
1052 { L"% 10ls", true } | 1052 { L"% 10ls", true } |
1053 }; | 1053 }; |
1054 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) { | 1054 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) { |
1055 EXPECT_EQ(cases[i].portable, base::IsWprintfFormatPortable(cases[i].input)); | 1055 EXPECT_EQ(cases[i].portable, base::IsWprintfFormatPortable(cases[i].input)); |
1056 } | 1056 } |
1057 } | 1057 } |
1058 | 1058 |
1059 TEST(StringUtilTest, ElideString) { | |
1060 struct TestData { | |
1061 const wchar_t* input; | |
1062 int max_len; | |
1063 bool result; | |
1064 const wchar_t* output; | |
1065 } cases[] = { | |
1066 { L"Hello", 0, true, L"" }, | |
1067 { L"", 0, false, L"" }, | |
1068 { L"Hello, my name is Tom", 1, true, L"H" }, | |
1069 { L"Hello, my name is Tom", 2, true, L"He" }, | |
1070 { L"Hello, my name is Tom", 3, true, L"H.m" }, | |
1071 { L"Hello, my name is Tom", 4, true, L"H..m" }, | |
1072 { L"Hello, my name is Tom", 5, true, L"H...m" }, | |
1073 { L"Hello, my name is Tom", 6, true, L"He...m" }, | |
1074 { L"Hello, my name is Tom", 7, true, L"He...om" }, | |
1075 { L"Hello, my name is Tom", 10, true, L"Hell...Tom" }, | |
1076 { L"Hello, my name is Tom", 100, false, L"Hello, my name is Tom" } | |
1077 }; | |
1078 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) { | |
1079 std::wstring output; | |
1080 EXPECT_EQ(cases[i].result, | |
1081 ElideString(cases[i].input, cases[i].max_len, &output)); | |
1082 EXPECT_TRUE(output == cases[i].output); | |
1083 } | |
1084 } | |
1085 | |
1086 TEST(StringUtilTest, RemoveChars) { | 1059 TEST(StringUtilTest, RemoveChars) { |
1087 const char* kRemoveChars = "-/+*"; | 1060 const char* kRemoveChars = "-/+*"; |
1088 std::string input = "A-+bc/d!*"; | 1061 std::string input = "A-+bc/d!*"; |
1089 EXPECT_TRUE(RemoveChars(input, kRemoveChars, &input)); | 1062 EXPECT_TRUE(RemoveChars(input, kRemoveChars, &input)); |
1090 EXPECT_EQ("Abcd!", input); | 1063 EXPECT_EQ("Abcd!", input); |
1091 | 1064 |
1092 // No characters match kRemoveChars. | 1065 // No characters match kRemoveChars. |
1093 EXPECT_FALSE(RemoveChars(input, kRemoveChars, &input)); | 1066 EXPECT_FALSE(RemoveChars(input, kRemoveChars, &input)); |
1094 EXPECT_EQ("Abcd!", input); | 1067 EXPECT_EQ("Abcd!", input); |
1095 | 1068 |
(...skipping 10 matching lines...) Expand all Loading... |
1106 EXPECT_FALSE(ContainsOnlyChars("Hello", "")); | 1079 EXPECT_FALSE(ContainsOnlyChars("Hello", "")); |
1107 | 1080 |
1108 EXPECT_TRUE(ContainsOnlyChars("", "1234")); | 1081 EXPECT_TRUE(ContainsOnlyChars("", "1234")); |
1109 EXPECT_TRUE(ContainsOnlyChars("1", "1234")); | 1082 EXPECT_TRUE(ContainsOnlyChars("1", "1234")); |
1110 EXPECT_TRUE(ContainsOnlyChars("1", "4321")); | 1083 EXPECT_TRUE(ContainsOnlyChars("1", "4321")); |
1111 EXPECT_TRUE(ContainsOnlyChars("123", "4321")); | 1084 EXPECT_TRUE(ContainsOnlyChars("123", "4321")); |
1112 EXPECT_FALSE(ContainsOnlyChars("123a", "4321")); | 1085 EXPECT_FALSE(ContainsOnlyChars("123a", "4321")); |
1113 } | 1086 } |
1114 | 1087 |
1115 } // namespace base | 1088 } // namespace base |
OLD | NEW |