| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/string_split.h" | 5 #include "base/string_split.h" |
| 6 | 6 |
| 7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
| 8 #include "testing/gmock/include/gmock/gmock.h" | 8 #include "testing/gmock/include/gmock/gmock.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| 11 using ::testing::ElementsAre; | 11 using ::testing::ElementsAre; |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 SplitStringUsingSubstr("", "DELIMITER", &results); | 156 SplitStringUsingSubstr("", "DELIMITER", &results); |
| 157 ASSERT_EQ(1u, results.size()); | 157 ASSERT_EQ(1u, results.size()); |
| 158 EXPECT_THAT(results, ElementsAre("")); | 158 EXPECT_THAT(results, ElementsAre("")); |
| 159 } | 159 } |
| 160 | 160 |
| 161 // Test for SplitString | 161 // Test for SplitString |
| 162 TEST(StringUtilTest, SplitString) { | 162 TEST(StringUtilTest, SplitString) { |
| 163 std::vector<std::wstring> r; | 163 std::vector<std::wstring> r; |
| 164 | 164 |
| 165 SplitString(L"", L',', &r); | 165 SplitString(L"", L',', &r); |
| 166 EXPECT_EQ(0U, r.size()); | 166 ASSERT_EQ(1U, r.size()); |
| 167 EXPECT_EQ(r[0], L""); |
| 167 r.clear(); | 168 r.clear(); |
| 168 | 169 |
| 169 SplitString(L"a,b,c", L',', &r); | 170 SplitString(L"a,b,c", L',', &r); |
| 170 ASSERT_EQ(3U, r.size()); | 171 ASSERT_EQ(3U, r.size()); |
| 171 EXPECT_EQ(r[0], L"a"); | 172 EXPECT_EQ(r[0], L"a"); |
| 172 EXPECT_EQ(r[1], L"b"); | 173 EXPECT_EQ(r[1], L"b"); |
| 173 EXPECT_EQ(r[2], L"c"); | 174 EXPECT_EQ(r[2], L"c"); |
| 174 r.clear(); | 175 r.clear(); |
| 175 | 176 |
| 176 SplitString(L"a, b, c", L',', &r); | 177 SplitString(L"a, b, c", L',', &r); |
| 177 ASSERT_EQ(3U, r.size()); | 178 ASSERT_EQ(3U, r.size()); |
| 178 EXPECT_EQ(r[0], L"a"); | 179 EXPECT_EQ(r[0], L"a"); |
| 179 EXPECT_EQ(r[1], L"b"); | 180 EXPECT_EQ(r[1], L"b"); |
| 180 EXPECT_EQ(r[2], L"c"); | 181 EXPECT_EQ(r[2], L"c"); |
| 181 r.clear(); | 182 r.clear(); |
| 182 | 183 |
| 183 SplitString(L"a,,c", L',', &r); | 184 SplitString(L"a,,c", L',', &r); |
| 184 ASSERT_EQ(3U, r.size()); | 185 ASSERT_EQ(3U, r.size()); |
| 185 EXPECT_EQ(r[0], L"a"); | 186 EXPECT_EQ(r[0], L"a"); |
| 186 EXPECT_EQ(r[1], L""); | 187 EXPECT_EQ(r[1], L""); |
| 187 EXPECT_EQ(r[2], L"c"); | 188 EXPECT_EQ(r[2], L"c"); |
| 188 r.clear(); | 189 r.clear(); |
| 189 | 190 |
| 190 SplitString(L" ", L'*', &r); | 191 SplitString(L"", L'*', &r); |
| 191 EXPECT_EQ(0U, r.size()); | 192 ASSERT_EQ(1U, r.size()); |
| 193 EXPECT_EQ(r[0], L""); |
| 192 r.clear(); | 194 r.clear(); |
| 193 | 195 |
| 194 SplitString(L"foo", L'*', &r); | 196 SplitString(L"foo", L'*', &r); |
| 195 ASSERT_EQ(1U, r.size()); | 197 ASSERT_EQ(1U, r.size()); |
| 196 EXPECT_EQ(r[0], L"foo"); | 198 EXPECT_EQ(r[0], L"foo"); |
| 197 r.clear(); | 199 r.clear(); |
| 198 | 200 |
| 199 SplitString(L"foo ,", L',', &r); | 201 SplitString(L"foo ,", L',', &r); |
| 200 ASSERT_EQ(2U, r.size()); | 202 ASSERT_EQ(2U, r.size()); |
| 201 EXPECT_EQ(r[0], L"foo"); | 203 EXPECT_EQ(r[0], L"foo"); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 "DELIMITER", | 259 "DELIMITER", |
| 258 &results); | 260 &results); |
| 259 ASSERT_EQ(7u, results.size()); | 261 ASSERT_EQ(7u, results.size()); |
| 260 EXPECT_THAT( | 262 EXPECT_THAT( |
| 261 results, ElementsAre("un", "deux", "trois", "quatre", "", "", "")); | 263 results, ElementsAre("un", "deux", "trois", "quatre", "", "", "")); |
| 262 } | 264 } |
| 263 | 265 |
| 264 TEST(StringSplitTest, StringSplitDontTrim) { | 266 TEST(StringSplitTest, StringSplitDontTrim) { |
| 265 std::vector<std::string> r; | 267 std::vector<std::string> r; |
| 266 | 268 |
| 267 SplitStringDontTrim(" ", '*', &r); | 269 SplitStringDontTrim("\t\ta\t", '\t', &r); |
| 268 ASSERT_EQ(1U, r.size()); | |
| 269 EXPECT_EQ(r[0], " "); | |
| 270 r.clear(); | |
| 271 | |
| 272 SplitStringDontTrim("\t \ta\t ", '\t', &r); | |
| 273 ASSERT_EQ(4U, r.size()); | 270 ASSERT_EQ(4U, r.size()); |
| 274 EXPECT_EQ(r[0], ""); | 271 EXPECT_EQ(r[0], ""); |
| 275 EXPECT_EQ(r[1], " "); | 272 EXPECT_EQ(r[1], ""); |
| 276 EXPECT_EQ(r[2], "a"); | 273 EXPECT_EQ(r[2], "a"); |
| 277 EXPECT_EQ(r[3], " "); | 274 EXPECT_EQ(r[3], ""); |
| 278 r.clear(); | 275 r.clear(); |
| 279 | 276 |
| 280 SplitStringDontTrim("\ta\t\nb\tcc", '\n', &r); | 277 SplitStringDontTrim("\ta\t\nb\tcc", '\n', &r); |
| 281 ASSERT_EQ(2U, r.size()); | 278 ASSERT_EQ(2U, r.size()); |
| 282 EXPECT_EQ(r[0], "\ta\t"); | 279 EXPECT_EQ(r[0], "\ta\t"); |
| 283 EXPECT_EQ(r[1], "b\tcc"); | 280 EXPECT_EQ(r[1], "b\tcc"); |
| 284 r.clear(); | 281 r.clear(); |
| 285 } | 282 } |
| 286 | 283 |
| 287 TEST(StringSplitTest, SplitStringAlongWhitespace) { | 284 TEST(StringSplitTest, SplitStringAlongWhitespace) { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 310 SplitStringAlongWhitespace(data[i].input, &results); | 307 SplitStringAlongWhitespace(data[i].input, &results); |
| 311 ASSERT_EQ(data[i].expected_result_count, results.size()); | 308 ASSERT_EQ(data[i].expected_result_count, results.size()); |
| 312 if (data[i].expected_result_count > 0) | 309 if (data[i].expected_result_count > 0) |
| 313 ASSERT_EQ(data[i].output1, results[0]); | 310 ASSERT_EQ(data[i].output1, results[0]); |
| 314 if (data[i].expected_result_count > 1) | 311 if (data[i].expected_result_count > 1) |
| 315 ASSERT_EQ(data[i].output2, results[1]); | 312 ASSERT_EQ(data[i].output2, results[1]); |
| 316 } | 313 } |
| 317 } | 314 } |
| 318 | 315 |
| 319 } // namespace base | 316 } // namespace base |
| OLD | NEW |