| Index: third_party/WebKit/Source/wtf/text/StringViewTest.cpp
|
| diff --git a/third_party/WebKit/Source/wtf/text/StringViewTest.cpp b/third_party/WebKit/Source/wtf/text/StringViewTest.cpp
|
| index 522b42a3298a262a73b2e5dedfd5b38dd6497807..6c56f43feda9c01e3bf84674755f5071f3fe1d79 100644
|
| --- a/third_party/WebKit/Source/wtf/text/StringViewTest.cpp
|
| +++ b/third_party/WebKit/Source/wtf/text/StringViewTest.cpp
|
| @@ -289,6 +289,20 @@ TEST(StringViewTest, ConstructionLiteral16)
|
| EXPECT_EQ(String("12"), StringView(kChars16, 2).toString());
|
| }
|
|
|
| +TEST(StringViewTest, ConstructionRawBytes)
|
| +{
|
| + // StringView(const void* bytes, unsigned length, bool is8Bit);
|
| + StringView view8(reinterpret_cast<const void*>(kChars), 2, true);
|
| + ASSERT_TRUE(view8.is8Bit());
|
| + EXPECT_EQ(2u, view8.length());
|
| + EXPECT_EQ("12", view8);
|
| +
|
| + StringView view16(reinterpret_cast<const void*>(kChars16), 3, false);
|
| + ASSERT_FALSE(view16.is8Bit());
|
| + EXPECT_EQ(3u, view16.length());
|
| + EXPECT_EQ("123", view16);
|
| +}
|
| +
|
| TEST(StringViewTest, IsEmpty)
|
| {
|
| EXPECT_FALSE(StringView(kChars).isEmpty());
|
| @@ -321,6 +335,59 @@ TEST(StringViewTest, NullString)
|
| EXPECT_TRUE(view.isNull());
|
| EXPECT_EQ(String(), StringView());
|
| EXPECT_TRUE(StringView().toString().isNull());
|
| + EXPECT_FALSE(equalStringView(StringView(), ""));
|
| + EXPECT_TRUE(equalStringView(StringView(), StringView()));
|
| + EXPECT_FALSE(equalStringView(StringView(), "abc"));
|
| + EXPECT_FALSE(equalStringView("abc", StringView()));
|
| + EXPECT_FALSE(equalIgnoringASCIICase(StringView(), ""));
|
| + EXPECT_TRUE(equalIgnoringASCIICase(StringView(), StringView()));
|
| + EXPECT_FALSE(equalIgnoringASCIICase(StringView(), "abc"));
|
| + EXPECT_FALSE(equalIgnoringASCIICase("abc", StringView()));
|
| +}
|
| +
|
| +TEST(StringViewTest, IndexAccess)
|
| +{
|
| + StringView view8(kChars8);
|
| + EXPECT_EQ('1', view8[0]);
|
| + EXPECT_EQ('3', view8[2]);
|
| + StringView view16(kChars16);
|
| + EXPECT_EQ('1', view16[0]);
|
| + EXPECT_EQ('3', view16[2]);
|
| +}
|
| +
|
| +TEST(StringViewTest, EqualIgnoringASCIICase)
|
| +{
|
| + static const char* link8 = "link";
|
| + static const char* linkCaps8 = "LINK";
|
| + static const char* nonASCII8 = "a\xE1";
|
| + static const char* nonASCIICaps8 = "A\xE1";
|
| + static const char* nonASCIIInvalid8 = "a\xC1";
|
| +
|
| + static const UChar link16[5] = { 0x006c, 0x0069, 0x006e, 0x006b, 0 }; // link
|
| + static const UChar linkCaps16[5] = { 0x004c, 0x0049, 0x004e, 0x004b, 0 }; // LINK
|
| + static const UChar nonASCII16[3] = { 0x0061, 0x00e1, 0 }; // a\xE1
|
| + static const UChar nonASCIICaps16[3] = { 0x0041, 0x00e1, 0 }; // A\xE1
|
| + static const UChar nonASCIIInvalid16[3] = { 0x0061, 0x00c1, 0 }; // a\xC1
|
| +
|
| + EXPECT_TRUE(equalIgnoringASCIICase(StringView(link16), link8));
|
| + EXPECT_TRUE(equalIgnoringASCIICase(StringView(link16), linkCaps16));
|
| + EXPECT_TRUE(equalIgnoringASCIICase(StringView(link16), linkCaps8));
|
| + EXPECT_TRUE(equalIgnoringASCIICase(StringView(link8), linkCaps8));
|
| + EXPECT_TRUE(equalIgnoringASCIICase(StringView(link8), link16));
|
| +
|
| + EXPECT_TRUE(equalIgnoringASCIICase(StringView(nonASCII8), nonASCIICaps8));
|
| + EXPECT_TRUE(equalIgnoringASCIICase(StringView(nonASCII8), nonASCIICaps16));
|
| + EXPECT_TRUE(equalIgnoringASCIICase(StringView(nonASCII16), nonASCIICaps16));
|
| + EXPECT_TRUE(equalIgnoringASCIICase(StringView(nonASCII16), nonASCIICaps8));
|
| + EXPECT_FALSE(equalIgnoringASCIICase(StringView(nonASCII8), nonASCIIInvalid8));
|
| + EXPECT_FALSE(equalIgnoringASCIICase(StringView(nonASCII8), nonASCIIInvalid16));
|
| +
|
| + EXPECT_TRUE(equalIgnoringASCIICase(StringView("link"), "lInK"));
|
| + EXPECT_FALSE(equalIgnoringASCIICase(StringView("link"), "INKL"));
|
| + EXPECT_FALSE(equalIgnoringASCIICase(StringView("link"), "link different length"));
|
| + EXPECT_FALSE(equalIgnoringASCIICase(StringView("link different length"), "link"));
|
| +
|
| + EXPECT_TRUE(equalIgnoringASCIICase(StringView(""), ""));
|
| }
|
|
|
| } // namespace WTF
|
|
|