17af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com// Copyright 2013 The Chromium Authors. All rights reserved. 27af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com// Use of this source code is governed by a BSD-style license that can be 37af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com// found in the LICENSE file. 4ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com// 5ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com// The original source code is from: 6ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com// http://src.chromium.org/viewvc/chrome/trunk/src/base/strings/string_split_unittest.cc?revision=216633 77af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 8ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com#include "util/string_split.h" 97af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 10ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com#include <string> 11ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com#include <vector> 127af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 13ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com#include <gtest/gtest.h> 147af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 157af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.comnamespace { 167af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 17ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.comusing i18n::addressinput::SplitString; 187af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 19ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.comTEST(StringSplitTest, SplitString) { 20ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com std::vector<std::string> r; 217af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 22ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString(std::string(), ',', &r); 237af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com EXPECT_EQ(0U, r.size()); 247af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 25ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString("a,b,c", ',', &r); 267af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com ASSERT_EQ(3U, r.size()); 27ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[0], "a"); 28ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[1], "b"); 29ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[2], "c"); 307af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 31ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString("a, b, c", ',', &r); 327af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com ASSERT_EQ(3U, r.size()); 33ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[0], "a"); 34ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[1], " b"); 35ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[2], " c"); 367af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 37ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString("a,,c", ',', &r); 387af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com ASSERT_EQ(3U, r.size()); 39ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[0], "a"); 40ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[1], ""); 41ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[2], "c"); 427af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 43ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString(" ", '*', &r); 44ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(1U, r.size()); 457af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 46ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString("foo", '*', &r); 477af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com ASSERT_EQ(1U, r.size()); 48ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[0], "foo"); 497af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 50ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString("foo ,", ',', &r); 517af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com ASSERT_EQ(2U, r.size()); 52ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[0], "foo "); 53ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[1], ""); 547af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 55ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString(",", ',', &r); 567af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com ASSERT_EQ(2U, r.size()); 57ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[0], ""); 58ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[1], ""); 597af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 60ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString("\t\ta\t", '\t', &r); 617af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com ASSERT_EQ(4U, r.size()); 62ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[0], ""); 63ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[1], ""); 64ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[2], "a"); 65ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[3], ""); 667af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 67ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString("\ta\t\nb\tcc", '\n', &r); 687af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com ASSERT_EQ(2U, r.size()); 69ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[0], "\ta\t"); 70ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com EXPECT_EQ(r[1], "b\tcc"); 717af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 72ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString(" ", '*', &r); 737af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com ASSERT_EQ(1U, r.size()); 747af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com EXPECT_EQ(r[0], " "); 757af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 76ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString("\t \ta\t ", '\t', &r); 777af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com ASSERT_EQ(4U, r.size()); 787af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com EXPECT_EQ(r[0], ""); 797af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com EXPECT_EQ(r[1], " "); 807af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com EXPECT_EQ(r[2], "a"); 817af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com EXPECT_EQ(r[3], " "); 827af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 83ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com SplitString("\ta\t\nb\tcc", '\n', &r); 847af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com ASSERT_EQ(2U, r.size()); 857af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com EXPECT_EQ(r[0], "\ta\t"); 867af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com EXPECT_EQ(r[1], "b\tcc"); 877af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com} 887af2afbf8abd201b5cad73ca1275e1b03d91efcaroubert@google.com 89ff46a74157ff7b73490fd1fb909d6151fcafa353roubert@google.com} // namespace 90