#include "str.hh" #include TEST(str, split) { auto ret = str::split(""); EXPECT_EQ(0, ret.size()); ret = str::split("", ' ', true); ASSERT_EQ(1, ret.size()); EXPECT_EQ("", ret[0]); ret = str::split(" "); EXPECT_EQ(0, ret.size()); ret = str::split(" ", ' ', true); ASSERT_EQ(2, ret.size()); EXPECT_EQ("", ret[0]); EXPECT_EQ("", ret[1]); ret = str::split(" a b "); ASSERT_EQ(2, ret.size()); EXPECT_EQ("a", ret[0]); EXPECT_EQ("b", ret[1]); ret = str::split(" a b ", ' ', true); ASSERT_EQ(4, ret.size()); EXPECT_EQ("", ret[0]); EXPECT_EQ("a", ret[1]); EXPECT_EQ("b", ret[2]); EXPECT_EQ("", ret[3]); ret = str::split(" a b", ' ', true); ASSERT_EQ(3, ret.size()); EXPECT_EQ("", ret[0]); EXPECT_EQ("a", ret[1]); EXPECT_EQ("b", ret[2]); } TEST(str, split2) { auto ret = str::split("", "\r\n"); EXPECT_EQ(0, ret.size()); ret = str::split("", "\r\n", true); ASSERT_EQ(1, ret.size()); EXPECT_EQ("", ret[0]); ret = str::split("\r\n", "\r\n"); EXPECT_EQ(0, ret.size()); ret = str::split("\r\n", "\r\n", true); ASSERT_EQ(2, ret.size()); EXPECT_EQ("", ret[0]); EXPECT_EQ("", ret[1]); ret = str::split("\r\na\r\nb\r\n", "\r\n"); ASSERT_EQ(2, ret.size()); EXPECT_EQ("a", ret[0]); EXPECT_EQ("b", ret[1]); ret = str::split("\r\na\r\nb\r\n", "\r\n", true); ASSERT_EQ(4, ret.size()); EXPECT_EQ("", ret[0]); EXPECT_EQ("a", ret[1]); EXPECT_EQ("b", ret[2]); EXPECT_EQ("", ret[3]); ret = str::split("\r\na\r\nb", "\r\n", true); ASSERT_EQ(3, ret.size()); EXPECT_EQ("", ret[0]); EXPECT_EQ("a", ret[1]); EXPECT_EQ("b", ret[2]); ret = str::split("\ra\nb", "\r\n"); ASSERT_EQ(1, ret.size()); EXPECT_EQ("\ra\nb", ret[0]); } TEST(str, trim) { auto ret = str::trim(""); EXPECT_EQ("", ret); ret = str::trim(" "); EXPECT_EQ("", ret); ret = str::trim(" "); EXPECT_EQ("", ret); ret = str::trim("foo"); EXPECT_EQ("foo", ret); ret = str::trim(" foo"); EXPECT_EQ("foo", ret); ret = str::trim(" foo "); EXPECT_EQ("foo", ret); ret = str::trim("foo "); EXPECT_EQ("foo", ret); ret = str::trim(" foo bar "); EXPECT_EQ("foo bar", ret); ret = str::trim("\tfoo bar\r\n"); EXPECT_EQ("foo bar", ret); } TEST(str, ltrim) { auto ret = str::ltrim(""); EXPECT_EQ("", ret); ret = str::ltrim(" "); EXPECT_EQ("", ret); ret = str::ltrim(" "); EXPECT_EQ("", ret); ret = str::ltrim("foo"); EXPECT_EQ("foo", ret); ret = str::ltrim(" foo"); EXPECT_EQ("foo", ret); ret = str::ltrim(" foo "); EXPECT_EQ("foo ", ret); ret = str::ltrim("foo "); EXPECT_EQ("foo ", ret); ret = str::ltrim(" foo bar "); EXPECT_EQ("foo bar ", ret); ret = str::ltrim("\tfoo bar\r\n"); EXPECT_EQ("foo bar\r\n", ret); } TEST(str, rtrim) { auto ret = str::rtrim(""); EXPECT_EQ("", ret); ret = str::rtrim(" "); EXPECT_EQ("", ret); ret = str::rtrim(" "); EXPECT_EQ("", ret); ret = str::rtrim("foo"); EXPECT_EQ("foo", ret); ret = str::rtrim(" foo"); EXPECT_EQ(" foo", ret); ret = str::rtrim(" foo "); EXPECT_EQ(" foo", ret); ret = str::rtrim("foo "); EXPECT_EQ("foo", ret); ret = str::rtrim(" foo bar "); EXPECT_EQ(" foo bar", ret); ret = str::rtrim("\tfoo bar\r\n"); EXPECT_EQ("\tfoo bar", ret); }