summaryrefslogtreecommitdiffstats
path: root/base/string_split_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/string_split_unittest.cc')
-rw-r--r--base/string_split_unittest.cc32
1 files changed, 32 insertions, 0 deletions
diff --git a/base/string_split_unittest.cc b/base/string_split_unittest.cc
index afdc526..749d566 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