Index: base/string_split_unittest.cc |
diff --git a/base/string_split_unittest.cc b/base/string_split_unittest.cc |
index afdc52624b01c2a8ea6a3d39865e1f86f367cc97..749d56662b7e25ee4c0f1dddbc1f31e424d0b5d4 100644 |
--- a/base/string_split_unittest.cc |
+++ b/base/string_split_unittest.cc |
@@ -262,4 +262,36 @@ TEST(StringSplitTest, StringSplitDontTrim) { |
r.clear(); |
} |
+TEST(StringSplitTest, SplitStringAlongWhitespace) { |
+ struct TestData { |
+ const std::wstring input; |
+ const size_t expected_result_count; |
+ const std::wstring output1; |
+ const std::wstring output2; |
+ } data[] = { |
+ { L"a", 1, L"a", L"" }, |
+ { L" ", 0, L"", L"" }, |
+ { L" a", 1, L"a", L"" }, |
+ { L" ab ", 1, L"ab", L"" }, |
+ { L" ab c", 2, L"ab", L"c" }, |
+ { L" ab c ", 2, L"ab", L"c" }, |
+ { L" ab cd", 2, L"ab", L"cd" }, |
+ { L" ab cd ", 2, L"ab", L"cd" }, |
+ { L" \ta\t", 1, L"a", L"" }, |
+ { L" b\ta\t", 2, L"b", L"a" }, |
+ { L" b\tat", 2, L"b", L"at" }, |
+ { L"b\tat", 2, L"b", L"at" }, |
+ { L"b\t at", 2, L"b", L"at" }, |
+ }; |
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(data); ++i) { |
+ std::vector<std::wstring> results; |
+ SplitStringAlongWhitespace(data[i].input, &results); |
+ ASSERT_EQ(data[i].expected_result_count, results.size()); |
+ if (data[i].expected_result_count > 0) |
+ ASSERT_EQ(data[i].output1, results[0]); |
+ if (data[i].expected_result_count > 1) |
+ ASSERT_EQ(data[i].output2, results[1]); |
+ } |
+} |
+ |
} // namespace base |