| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "platform/wtf/text/StringView.h" | 5 #include "platform/wtf/text/StringView.h" |
| 6 | 6 |
| 7 #include "platform/wtf/text/AtomicString.h" | 7 #include "platform/wtf/text/AtomicString.h" |
| 8 #include "platform/wtf/text/StringImpl.h" | 8 #include "platform/wtf/text/StringImpl.h" |
| 9 #include "platform/wtf/text/WTFString.h" | 9 #include "platform/wtf/text/WTFString.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| 11 | 11 |
| 12 namespace WTF { | 12 namespace WTF { |
| 13 | 13 |
| 14 const char* g_k_chars = "12345"; | 14 const char kChars[] = "12345"; |
| 15 const LChar* g_k_chars8 = reinterpret_cast<const LChar*>(g_k_chars); | 15 const LChar* const kChars8 = reinterpret_cast<const LChar*>(kChars); |
| 16 const UChar* g_k_chars16 = reinterpret_cast<const UChar*>(u"12345"); | 16 const UChar* const kChars16 = reinterpret_cast<const UChar*>(u"12345"); |
| 17 | 17 |
| 18 TEST(StringViewTest, ConstructionStringImpl8) { | 18 TEST(StringViewTest, ConstructionStringImpl8) { |
| 19 RefPtr<StringImpl> impl8_bit = StringImpl::Create(g_k_chars8, 5); | 19 RefPtr<StringImpl> impl8_bit = StringImpl::Create(kChars8, 5); |
| 20 | 20 |
| 21 // StringView(StringImpl*); | 21 // StringView(StringImpl*); |
| 22 ASSERT_TRUE(StringView(impl8_bit.Get()).Is8Bit()); | 22 ASSERT_TRUE(StringView(impl8_bit.Get()).Is8Bit()); |
| 23 EXPECT_FALSE(StringView(impl8_bit.Get()).IsNull()); | 23 EXPECT_FALSE(StringView(impl8_bit.Get()).IsNull()); |
| 24 EXPECT_EQ(impl8_bit->Characters8(), | 24 EXPECT_EQ(impl8_bit->Characters8(), |
| 25 StringView(impl8_bit.Get()).Characters8()); | 25 StringView(impl8_bit.Get()).Characters8()); |
| 26 EXPECT_EQ(impl8_bit->length(), StringView(impl8_bit.Get()).length()); | 26 EXPECT_EQ(impl8_bit->length(), StringView(impl8_bit.Get()).length()); |
| 27 EXPECT_STREQ(g_k_chars, StringView(impl8_bit.Get()).ToString().Utf8().Data()); | 27 EXPECT_STREQ(kChars, StringView(impl8_bit.Get()).ToString().Utf8().Data()); |
| 28 | 28 |
| 29 // StringView(StringImpl*, unsigned offset); | 29 // StringView(StringImpl*, unsigned offset); |
| 30 ASSERT_TRUE(StringView(impl8_bit.Get(), 2).Is8Bit()); | 30 ASSERT_TRUE(StringView(impl8_bit.Get(), 2).Is8Bit()); |
| 31 EXPECT_FALSE(StringView(impl8_bit.Get(), 2).IsNull()); | 31 EXPECT_FALSE(StringView(impl8_bit.Get(), 2).IsNull()); |
| 32 EXPECT_EQ(impl8_bit->Characters8() + 2, | 32 EXPECT_EQ(impl8_bit->Characters8() + 2, |
| 33 StringView(impl8_bit.Get(), 2).Characters8()); | 33 StringView(impl8_bit.Get(), 2).Characters8()); |
| 34 EXPECT_EQ(3u, StringView(impl8_bit.Get(), 2).length()); | 34 EXPECT_EQ(3u, StringView(impl8_bit.Get(), 2).length()); |
| 35 EXPECT_EQ(StringView("345"), StringView(impl8_bit.Get(), 2)); | 35 EXPECT_EQ(StringView("345"), StringView(impl8_bit.Get(), 2)); |
| 36 EXPECT_STREQ("345", StringView(impl8_bit.Get(), 2).ToString().Utf8().Data()); | 36 EXPECT_STREQ("345", StringView(impl8_bit.Get(), 2).ToString().Utf8().Data()); |
| 37 | 37 |
| 38 // StringView(StringImpl*, unsigned offset, unsigned length); | 38 // StringView(StringImpl*, unsigned offset, unsigned length); |
| 39 ASSERT_TRUE(StringView(impl8_bit.Get(), 2, 1).Is8Bit()); | 39 ASSERT_TRUE(StringView(impl8_bit.Get(), 2, 1).Is8Bit()); |
| 40 EXPECT_FALSE(StringView(impl8_bit.Get(), 2, 1).IsNull()); | 40 EXPECT_FALSE(StringView(impl8_bit.Get(), 2, 1).IsNull()); |
| 41 EXPECT_EQ(impl8_bit->Characters8() + 2, | 41 EXPECT_EQ(impl8_bit->Characters8() + 2, |
| 42 StringView(impl8_bit.Get(), 2, 1).Characters8()); | 42 StringView(impl8_bit.Get(), 2, 1).Characters8()); |
| 43 EXPECT_EQ(1u, StringView(impl8_bit.Get(), 2, 1).length()); | 43 EXPECT_EQ(1u, StringView(impl8_bit.Get(), 2, 1).length()); |
| 44 EXPECT_EQ(StringView("3"), StringView(impl8_bit.Get(), 2, 1)); | 44 EXPECT_EQ(StringView("3"), StringView(impl8_bit.Get(), 2, 1)); |
| 45 EXPECT_STREQ("3", StringView(impl8_bit.Get(), 2, 1).ToString().Utf8().Data()); | 45 EXPECT_STREQ("3", StringView(impl8_bit.Get(), 2, 1).ToString().Utf8().Data()); |
| 46 } | 46 } |
| 47 | 47 |
| 48 TEST(StringViewTest, ConstructionStringImpl16) { | 48 TEST(StringViewTest, ConstructionStringImpl16) { |
| 49 RefPtr<StringImpl> impl16_bit = StringImpl::Create(g_k_chars16, 5); | 49 RefPtr<StringImpl> impl16_bit = StringImpl::Create(kChars16, 5); |
| 50 | 50 |
| 51 // StringView(StringImpl*); | 51 // StringView(StringImpl*); |
| 52 ASSERT_FALSE(StringView(impl16_bit.Get()).Is8Bit()); | 52 ASSERT_FALSE(StringView(impl16_bit.Get()).Is8Bit()); |
| 53 EXPECT_FALSE(StringView(impl16_bit.Get()).IsNull()); | 53 EXPECT_FALSE(StringView(impl16_bit.Get()).IsNull()); |
| 54 EXPECT_EQ(impl16_bit->Characters16(), | 54 EXPECT_EQ(impl16_bit->Characters16(), |
| 55 StringView(impl16_bit.Get()).Characters16()); | 55 StringView(impl16_bit.Get()).Characters16()); |
| 56 EXPECT_EQ(impl16_bit->length(), StringView(impl16_bit.Get()).length()); | 56 EXPECT_EQ(impl16_bit->length(), StringView(impl16_bit.Get()).length()); |
| 57 EXPECT_STREQ(g_k_chars, | 57 EXPECT_STREQ(kChars, StringView(impl16_bit.Get()).ToString().Utf8().Data()); |
| 58 StringView(impl16_bit.Get()).ToString().Utf8().Data()); | |
| 59 | 58 |
| 60 // StringView(StringImpl*, unsigned offset); | 59 // StringView(StringImpl*, unsigned offset); |
| 61 ASSERT_FALSE(StringView(impl16_bit.Get(), 2).Is8Bit()); | 60 ASSERT_FALSE(StringView(impl16_bit.Get(), 2).Is8Bit()); |
| 62 EXPECT_FALSE(StringView(impl16_bit.Get(), 2).IsNull()); | 61 EXPECT_FALSE(StringView(impl16_bit.Get(), 2).IsNull()); |
| 63 EXPECT_EQ(impl16_bit->Characters16() + 2, | 62 EXPECT_EQ(impl16_bit->Characters16() + 2, |
| 64 StringView(impl16_bit.Get(), 2).Characters16()); | 63 StringView(impl16_bit.Get(), 2).Characters16()); |
| 65 EXPECT_EQ(3u, StringView(impl16_bit.Get(), 2).length()); | 64 EXPECT_EQ(3u, StringView(impl16_bit.Get(), 2).length()); |
| 66 EXPECT_EQ(StringView("345"), StringView(impl16_bit.Get(), 2)); | 65 EXPECT_EQ(StringView("345"), StringView(impl16_bit.Get(), 2)); |
| 67 EXPECT_STREQ("345", StringView(impl16_bit.Get(), 2).ToString().Utf8().Data()); | 66 EXPECT_STREQ("345", StringView(impl16_bit.Get(), 2).ToString().Utf8().Data()); |
| 68 | 67 |
| 69 // StringView(StringImpl*, unsigned offset, unsigned length); | 68 // StringView(StringImpl*, unsigned offset, unsigned length); |
| 70 ASSERT_FALSE(StringView(impl16_bit.Get(), 2, 1).Is8Bit()); | 69 ASSERT_FALSE(StringView(impl16_bit.Get(), 2, 1).Is8Bit()); |
| 71 EXPECT_FALSE(StringView(impl16_bit.Get(), 2, 1).IsNull()); | 70 EXPECT_FALSE(StringView(impl16_bit.Get(), 2, 1).IsNull()); |
| 72 EXPECT_EQ(impl16_bit->Characters16() + 2, | 71 EXPECT_EQ(impl16_bit->Characters16() + 2, |
| 73 StringView(impl16_bit.Get(), 2, 1).Characters16()); | 72 StringView(impl16_bit.Get(), 2, 1).Characters16()); |
| 74 EXPECT_EQ(1u, StringView(impl16_bit.Get(), 2, 1).length()); | 73 EXPECT_EQ(1u, StringView(impl16_bit.Get(), 2, 1).length()); |
| 75 EXPECT_EQ(StringView("3"), StringView(impl16_bit.Get(), 2, 1)); | 74 EXPECT_EQ(StringView("3"), StringView(impl16_bit.Get(), 2, 1)); |
| 76 EXPECT_STREQ("3", | 75 EXPECT_STREQ("3", |
| 77 StringView(impl16_bit.Get(), 2, 1).ToString().Utf8().Data()); | 76 StringView(impl16_bit.Get(), 2, 1).ToString().Utf8().Data()); |
| 78 } | 77 } |
| 79 | 78 |
| 80 TEST(StringViewTest, ConstructionStringImplRef8) { | 79 TEST(StringViewTest, ConstructionStringImplRef8) { |
| 81 RefPtr<StringImpl> impl8_bit = StringImpl::Create(g_k_chars8, 5); | 80 RefPtr<StringImpl> impl8_bit = StringImpl::Create(kChars8, 5); |
| 82 | 81 |
| 83 // StringView(StringImpl&); | 82 // StringView(StringImpl&); |
| 84 ASSERT_TRUE(StringView(*impl8_bit).Is8Bit()); | 83 ASSERT_TRUE(StringView(*impl8_bit).Is8Bit()); |
| 85 EXPECT_FALSE(StringView(*impl8_bit).IsNull()); | 84 EXPECT_FALSE(StringView(*impl8_bit).IsNull()); |
| 86 EXPECT_EQ(impl8_bit->Characters8(), StringView(*impl8_bit).Characters8()); | 85 EXPECT_EQ(impl8_bit->Characters8(), StringView(*impl8_bit).Characters8()); |
| 87 EXPECT_EQ(impl8_bit->length(), StringView(*impl8_bit).length()); | 86 EXPECT_EQ(impl8_bit->length(), StringView(*impl8_bit).length()); |
| 88 EXPECT_STREQ(g_k_chars, StringView(*impl8_bit).ToString().Utf8().Data()); | 87 EXPECT_STREQ(kChars, StringView(*impl8_bit).ToString().Utf8().Data()); |
| 89 | 88 |
| 90 // StringView(StringImpl&, unsigned offset); | 89 // StringView(StringImpl&, unsigned offset); |
| 91 ASSERT_TRUE(StringView(*impl8_bit, 2).Is8Bit()); | 90 ASSERT_TRUE(StringView(*impl8_bit, 2).Is8Bit()); |
| 92 EXPECT_FALSE(StringView(*impl8_bit, 2).IsNull()); | 91 EXPECT_FALSE(StringView(*impl8_bit, 2).IsNull()); |
| 93 EXPECT_EQ(impl8_bit->Characters8() + 2, | 92 EXPECT_EQ(impl8_bit->Characters8() + 2, |
| 94 StringView(*impl8_bit, 2).Characters8()); | 93 StringView(*impl8_bit, 2).Characters8()); |
| 95 EXPECT_EQ(3u, StringView(*impl8_bit, 2).length()); | 94 EXPECT_EQ(3u, StringView(*impl8_bit, 2).length()); |
| 96 EXPECT_EQ(StringView("345"), StringView(*impl8_bit, 2)); | 95 EXPECT_EQ(StringView("345"), StringView(*impl8_bit, 2)); |
| 97 EXPECT_STREQ("345", StringView(*impl8_bit, 2).ToString().Utf8().Data()); | 96 EXPECT_STREQ("345", StringView(*impl8_bit, 2).ToString().Utf8().Data()); |
| 98 | 97 |
| 99 // StringView(StringImpl&, unsigned offset, unsigned length); | 98 // StringView(StringImpl&, unsigned offset, unsigned length); |
| 100 ASSERT_TRUE(StringView(*impl8_bit, 2, 1).Is8Bit()); | 99 ASSERT_TRUE(StringView(*impl8_bit, 2, 1).Is8Bit()); |
| 101 EXPECT_FALSE(StringView(*impl8_bit, 2, 1).IsNull()); | 100 EXPECT_FALSE(StringView(*impl8_bit, 2, 1).IsNull()); |
| 102 EXPECT_EQ(impl8_bit->Characters8() + 2, | 101 EXPECT_EQ(impl8_bit->Characters8() + 2, |
| 103 StringView(*impl8_bit, 2, 1).Characters8()); | 102 StringView(*impl8_bit, 2, 1).Characters8()); |
| 104 EXPECT_EQ(1u, StringView(*impl8_bit, 2, 1).length()); | 103 EXPECT_EQ(1u, StringView(*impl8_bit, 2, 1).length()); |
| 105 EXPECT_EQ(StringView("3"), StringView(*impl8_bit, 2, 1)); | 104 EXPECT_EQ(StringView("3"), StringView(*impl8_bit, 2, 1)); |
| 106 EXPECT_STREQ("3", StringView(*impl8_bit, 2, 1).ToString().Utf8().Data()); | 105 EXPECT_STREQ("3", StringView(*impl8_bit, 2, 1).ToString().Utf8().Data()); |
| 107 } | 106 } |
| 108 | 107 |
| 109 TEST(StringViewTest, ConstructionStringImplRef16) { | 108 TEST(StringViewTest, ConstructionStringImplRef16) { |
| 110 RefPtr<StringImpl> impl16_bit = StringImpl::Create(g_k_chars16, 5); | 109 RefPtr<StringImpl> impl16_bit = StringImpl::Create(kChars16, 5); |
| 111 | 110 |
| 112 // StringView(StringImpl&); | 111 // StringView(StringImpl&); |
| 113 ASSERT_FALSE(StringView(*impl16_bit).Is8Bit()); | 112 ASSERT_FALSE(StringView(*impl16_bit).Is8Bit()); |
| 114 EXPECT_FALSE(StringView(*impl16_bit).IsNull()); | 113 EXPECT_FALSE(StringView(*impl16_bit).IsNull()); |
| 115 EXPECT_EQ(impl16_bit->Characters16(), StringView(*impl16_bit).Characters16()); | 114 EXPECT_EQ(impl16_bit->Characters16(), StringView(*impl16_bit).Characters16()); |
| 116 EXPECT_EQ(impl16_bit->length(), StringView(*impl16_bit).length()); | 115 EXPECT_EQ(impl16_bit->length(), StringView(*impl16_bit).length()); |
| 117 EXPECT_STREQ(g_k_chars, StringView(*impl16_bit).ToString().Utf8().Data()); | 116 EXPECT_STREQ(kChars, StringView(*impl16_bit).ToString().Utf8().Data()); |
| 118 | 117 |
| 119 // StringView(StringImpl&, unsigned offset); | 118 // StringView(StringImpl&, unsigned offset); |
| 120 ASSERT_FALSE(StringView(*impl16_bit, 2).Is8Bit()); | 119 ASSERT_FALSE(StringView(*impl16_bit, 2).Is8Bit()); |
| 121 EXPECT_FALSE(StringView(*impl16_bit, 2).IsNull()); | 120 EXPECT_FALSE(StringView(*impl16_bit, 2).IsNull()); |
| 122 EXPECT_EQ(impl16_bit->Characters16() + 2, | 121 EXPECT_EQ(impl16_bit->Characters16() + 2, |
| 123 StringView(*impl16_bit, 2).Characters16()); | 122 StringView(*impl16_bit, 2).Characters16()); |
| 124 EXPECT_EQ(3u, StringView(*impl16_bit, 2).length()); | 123 EXPECT_EQ(3u, StringView(*impl16_bit, 2).length()); |
| 125 EXPECT_EQ(StringView("345"), StringView(*impl16_bit, 2)); | 124 EXPECT_EQ(StringView("345"), StringView(*impl16_bit, 2)); |
| 126 EXPECT_STREQ("345", StringView(*impl16_bit, 2).ToString().Utf8().Data()); | 125 EXPECT_STREQ("345", StringView(*impl16_bit, 2).ToString().Utf8().Data()); |
| 127 | 126 |
| 128 // StringView(StringImpl&, unsigned offset, unsigned length); | 127 // StringView(StringImpl&, unsigned offset, unsigned length); |
| 129 ASSERT_FALSE(StringView(*impl16_bit, 2, 1).Is8Bit()); | 128 ASSERT_FALSE(StringView(*impl16_bit, 2, 1).Is8Bit()); |
| 130 EXPECT_FALSE(StringView(*impl16_bit, 2, 1).IsNull()); | 129 EXPECT_FALSE(StringView(*impl16_bit, 2, 1).IsNull()); |
| 131 EXPECT_EQ(impl16_bit->Characters16() + 2, | 130 EXPECT_EQ(impl16_bit->Characters16() + 2, |
| 132 StringView(*impl16_bit, 2, 1).Characters16()); | 131 StringView(*impl16_bit, 2, 1).Characters16()); |
| 133 EXPECT_EQ(1u, StringView(*impl16_bit, 2, 1).length()); | 132 EXPECT_EQ(1u, StringView(*impl16_bit, 2, 1).length()); |
| 134 EXPECT_EQ(StringView("3"), StringView(*impl16_bit, 2, 1)); | 133 EXPECT_EQ(StringView("3"), StringView(*impl16_bit, 2, 1)); |
| 135 EXPECT_STREQ("3", StringView(*impl16_bit, 2, 1).ToString().Utf8().Data()); | 134 EXPECT_STREQ("3", StringView(*impl16_bit, 2, 1).ToString().Utf8().Data()); |
| 136 } | 135 } |
| 137 | 136 |
| 138 TEST(StringViewTest, ConstructionString8) { | 137 TEST(StringViewTest, ConstructionString8) { |
| 139 String string8_bit = String(StringImpl::Create(g_k_chars8, 5)); | 138 String string8_bit = String(StringImpl::Create(kChars8, 5)); |
| 140 | 139 |
| 141 // StringView(const String&); | 140 // StringView(const String&); |
| 142 ASSERT_TRUE(StringView(string8_bit).Is8Bit()); | 141 ASSERT_TRUE(StringView(string8_bit).Is8Bit()); |
| 143 EXPECT_FALSE(StringView(string8_bit).IsNull()); | 142 EXPECT_FALSE(StringView(string8_bit).IsNull()); |
| 144 EXPECT_EQ(string8_bit.Characters8(), StringView(string8_bit).Characters8()); | 143 EXPECT_EQ(string8_bit.Characters8(), StringView(string8_bit).Characters8()); |
| 145 EXPECT_EQ(string8_bit.length(), StringView(string8_bit).length()); | 144 EXPECT_EQ(string8_bit.length(), StringView(string8_bit).length()); |
| 146 EXPECT_STREQ(g_k_chars, StringView(string8_bit).ToString().Utf8().Data()); | 145 EXPECT_STREQ(kChars, StringView(string8_bit).ToString().Utf8().Data()); |
| 147 | 146 |
| 148 // StringView(const String&, unsigned offset); | 147 // StringView(const String&, unsigned offset); |
| 149 ASSERT_TRUE(StringView(string8_bit, 2).Is8Bit()); | 148 ASSERT_TRUE(StringView(string8_bit, 2).Is8Bit()); |
| 150 EXPECT_FALSE(StringView(string8_bit, 2).IsNull()); | 149 EXPECT_FALSE(StringView(string8_bit, 2).IsNull()); |
| 151 EXPECT_EQ(string8_bit.Characters8() + 2, | 150 EXPECT_EQ(string8_bit.Characters8() + 2, |
| 152 StringView(string8_bit, 2).Characters8()); | 151 StringView(string8_bit, 2).Characters8()); |
| 153 EXPECT_EQ(3u, StringView(string8_bit, 2).length()); | 152 EXPECT_EQ(3u, StringView(string8_bit, 2).length()); |
| 154 EXPECT_EQ(StringView("345"), StringView(string8_bit, 2)); | 153 EXPECT_EQ(StringView("345"), StringView(string8_bit, 2)); |
| 155 EXPECT_STREQ("345", StringView(string8_bit, 2).ToString().Utf8().Data()); | 154 EXPECT_STREQ("345", StringView(string8_bit, 2).ToString().Utf8().Data()); |
| 156 | 155 |
| 157 // StringView(const String&, unsigned offset, unsigned length); | 156 // StringView(const String&, unsigned offset, unsigned length); |
| 158 ASSERT_TRUE(StringView(string8_bit, 2, 1).Is8Bit()); | 157 ASSERT_TRUE(StringView(string8_bit, 2, 1).Is8Bit()); |
| 159 EXPECT_FALSE(StringView(string8_bit, 2, 1).IsNull()); | 158 EXPECT_FALSE(StringView(string8_bit, 2, 1).IsNull()); |
| 160 EXPECT_EQ(string8_bit.Characters8() + 2, | 159 EXPECT_EQ(string8_bit.Characters8() + 2, |
| 161 StringView(string8_bit, 2, 1).Characters8()); | 160 StringView(string8_bit, 2, 1).Characters8()); |
| 162 EXPECT_EQ(1u, StringView(string8_bit, 2, 1).length()); | 161 EXPECT_EQ(1u, StringView(string8_bit, 2, 1).length()); |
| 163 EXPECT_EQ(StringView("3"), StringView(string8_bit, 2, 1)); | 162 EXPECT_EQ(StringView("3"), StringView(string8_bit, 2, 1)); |
| 164 EXPECT_STREQ("3", StringView(string8_bit, 2, 1).ToString().Utf8().Data()); | 163 EXPECT_STREQ("3", StringView(string8_bit, 2, 1).ToString().Utf8().Data()); |
| 165 } | 164 } |
| 166 | 165 |
| 167 TEST(StringViewTest, ConstructionString16) { | 166 TEST(StringViewTest, ConstructionString16) { |
| 168 String string16_bit = String(StringImpl::Create(g_k_chars16, 5)); | 167 String string16_bit = String(StringImpl::Create(kChars16, 5)); |
| 169 | 168 |
| 170 // StringView(const String&); | 169 // StringView(const String&); |
| 171 ASSERT_FALSE(StringView(string16_bit).Is8Bit()); | 170 ASSERT_FALSE(StringView(string16_bit).Is8Bit()); |
| 172 EXPECT_FALSE(StringView(string16_bit).IsNull()); | 171 EXPECT_FALSE(StringView(string16_bit).IsNull()); |
| 173 EXPECT_EQ(string16_bit.Characters16(), | 172 EXPECT_EQ(string16_bit.Characters16(), |
| 174 StringView(string16_bit).Characters16()); | 173 StringView(string16_bit).Characters16()); |
| 175 EXPECT_EQ(string16_bit.length(), StringView(string16_bit).length()); | 174 EXPECT_EQ(string16_bit.length(), StringView(string16_bit).length()); |
| 176 EXPECT_STREQ(g_k_chars, StringView(string16_bit).ToString().Utf8().Data()); | 175 EXPECT_STREQ(kChars, StringView(string16_bit).ToString().Utf8().Data()); |
| 177 | 176 |
| 178 // StringView(const String&, unsigned offset); | 177 // StringView(const String&, unsigned offset); |
| 179 ASSERT_FALSE(StringView(string16_bit, 2).Is8Bit()); | 178 ASSERT_FALSE(StringView(string16_bit, 2).Is8Bit()); |
| 180 EXPECT_FALSE(StringView(string16_bit, 2).IsNull()); | 179 EXPECT_FALSE(StringView(string16_bit, 2).IsNull()); |
| 181 EXPECT_EQ(string16_bit.Characters16() + 2, | 180 EXPECT_EQ(string16_bit.Characters16() + 2, |
| 182 StringView(string16_bit, 2).Characters16()); | 181 StringView(string16_bit, 2).Characters16()); |
| 183 EXPECT_EQ(3u, StringView(string16_bit, 2).length()); | 182 EXPECT_EQ(3u, StringView(string16_bit, 2).length()); |
| 184 EXPECT_EQ(StringView("345"), StringView(string16_bit, 2)); | 183 EXPECT_EQ(StringView("345"), StringView(string16_bit, 2)); |
| 185 EXPECT_STREQ("345", StringView(string16_bit, 2).ToString().Utf8().Data()); | 184 EXPECT_STREQ("345", StringView(string16_bit, 2).ToString().Utf8().Data()); |
| 186 | 185 |
| 187 // StringView(const String&, unsigned offset, unsigned length); | 186 // StringView(const String&, unsigned offset, unsigned length); |
| 188 ASSERT_FALSE(StringView(string16_bit, 2, 1).Is8Bit()); | 187 ASSERT_FALSE(StringView(string16_bit, 2, 1).Is8Bit()); |
| 189 EXPECT_FALSE(StringView(string16_bit, 2, 1).IsNull()); | 188 EXPECT_FALSE(StringView(string16_bit, 2, 1).IsNull()); |
| 190 EXPECT_EQ(string16_bit.Characters16() + 2, | 189 EXPECT_EQ(string16_bit.Characters16() + 2, |
| 191 StringView(string16_bit, 2, 1).Characters16()); | 190 StringView(string16_bit, 2, 1).Characters16()); |
| 192 EXPECT_EQ(1u, StringView(string16_bit, 2, 1).length()); | 191 EXPECT_EQ(1u, StringView(string16_bit, 2, 1).length()); |
| 193 EXPECT_EQ(StringView("3"), StringView(string16_bit, 2, 1)); | 192 EXPECT_EQ(StringView("3"), StringView(string16_bit, 2, 1)); |
| 194 EXPECT_STREQ("3", StringView(string16_bit, 2, 1).ToString().Utf8().Data()); | 193 EXPECT_STREQ("3", StringView(string16_bit, 2, 1).ToString().Utf8().Data()); |
| 195 } | 194 } |
| 196 | 195 |
| 197 TEST(StringViewTest, ConstructionAtomicString8) { | 196 TEST(StringViewTest, ConstructionAtomicString8) { |
| 198 AtomicString atom8_bit = AtomicString(StringImpl::Create(g_k_chars8, 5)); | 197 AtomicString atom8_bit = AtomicString(StringImpl::Create(kChars8, 5)); |
| 199 | 198 |
| 200 // StringView(const AtomicString&); | 199 // StringView(const AtomicString&); |
| 201 ASSERT_TRUE(StringView(atom8_bit).Is8Bit()); | 200 ASSERT_TRUE(StringView(atom8_bit).Is8Bit()); |
| 202 EXPECT_FALSE(StringView(atom8_bit).IsNull()); | 201 EXPECT_FALSE(StringView(atom8_bit).IsNull()); |
| 203 EXPECT_EQ(atom8_bit.Characters8(), StringView(atom8_bit).Characters8()); | 202 EXPECT_EQ(atom8_bit.Characters8(), StringView(atom8_bit).Characters8()); |
| 204 EXPECT_EQ(atom8_bit.length(), StringView(atom8_bit).length()); | 203 EXPECT_EQ(atom8_bit.length(), StringView(atom8_bit).length()); |
| 205 EXPECT_STREQ(g_k_chars, StringView(atom8_bit).ToString().Utf8().Data()); | 204 EXPECT_STREQ(kChars, StringView(atom8_bit).ToString().Utf8().Data()); |
| 206 | 205 |
| 207 // StringView(const AtomicString&, unsigned offset); | 206 // StringView(const AtomicString&, unsigned offset); |
| 208 ASSERT_TRUE(StringView(atom8_bit, 2).Is8Bit()); | 207 ASSERT_TRUE(StringView(atom8_bit, 2).Is8Bit()); |
| 209 EXPECT_FALSE(StringView(atom8_bit, 2).IsNull()); | 208 EXPECT_FALSE(StringView(atom8_bit, 2).IsNull()); |
| 210 EXPECT_EQ(atom8_bit.Characters8() + 2, | 209 EXPECT_EQ(atom8_bit.Characters8() + 2, |
| 211 StringView(atom8_bit, 2).Characters8()); | 210 StringView(atom8_bit, 2).Characters8()); |
| 212 EXPECT_EQ(3u, StringView(atom8_bit, 2).length()); | 211 EXPECT_EQ(3u, StringView(atom8_bit, 2).length()); |
| 213 EXPECT_EQ(StringView("345"), StringView(atom8_bit, 2)); | 212 EXPECT_EQ(StringView("345"), StringView(atom8_bit, 2)); |
| 214 EXPECT_STREQ("345", StringView(atom8_bit, 2).ToString().Utf8().Data()); | 213 EXPECT_STREQ("345", StringView(atom8_bit, 2).ToString().Utf8().Data()); |
| 215 | 214 |
| 216 // StringView(const AtomicString&, unsigned offset, unsigned length); | 215 // StringView(const AtomicString&, unsigned offset, unsigned length); |
| 217 ASSERT_TRUE(StringView(atom8_bit, 2, 1).Is8Bit()); | 216 ASSERT_TRUE(StringView(atom8_bit, 2, 1).Is8Bit()); |
| 218 EXPECT_FALSE(StringView(atom8_bit, 2, 1).IsNull()); | 217 EXPECT_FALSE(StringView(atom8_bit, 2, 1).IsNull()); |
| 219 EXPECT_EQ(atom8_bit.Characters8() + 2, | 218 EXPECT_EQ(atom8_bit.Characters8() + 2, |
| 220 StringView(atom8_bit, 2, 1).Characters8()); | 219 StringView(atom8_bit, 2, 1).Characters8()); |
| 221 EXPECT_EQ(1u, StringView(atom8_bit, 2, 1).length()); | 220 EXPECT_EQ(1u, StringView(atom8_bit, 2, 1).length()); |
| 222 EXPECT_EQ(StringView("3"), StringView(atom8_bit, 2, 1)); | 221 EXPECT_EQ(StringView("3"), StringView(atom8_bit, 2, 1)); |
| 223 EXPECT_STREQ("3", StringView(atom8_bit, 2, 1).ToString().Utf8().Data()); | 222 EXPECT_STREQ("3", StringView(atom8_bit, 2, 1).ToString().Utf8().Data()); |
| 224 } | 223 } |
| 225 | 224 |
| 226 TEST(StringViewTest, ConstructionAtomicString16) { | 225 TEST(StringViewTest, ConstructionAtomicString16) { |
| 227 AtomicString atom16_bit = AtomicString(StringImpl::Create(g_k_chars16, 5)); | 226 AtomicString atom16_bit = AtomicString(StringImpl::Create(kChars16, 5)); |
| 228 | 227 |
| 229 // StringView(const AtomicString&); | 228 // StringView(const AtomicString&); |
| 230 ASSERT_FALSE(StringView(atom16_bit).Is8Bit()); | 229 ASSERT_FALSE(StringView(atom16_bit).Is8Bit()); |
| 231 EXPECT_FALSE(StringView(atom16_bit).IsNull()); | 230 EXPECT_FALSE(StringView(atom16_bit).IsNull()); |
| 232 EXPECT_EQ(atom16_bit.Characters16(), StringView(atom16_bit).Characters16()); | 231 EXPECT_EQ(atom16_bit.Characters16(), StringView(atom16_bit).Characters16()); |
| 233 EXPECT_EQ(atom16_bit.length(), StringView(atom16_bit).length()); | 232 EXPECT_EQ(atom16_bit.length(), StringView(atom16_bit).length()); |
| 234 EXPECT_STREQ(g_k_chars, StringView(atom16_bit).ToString().Utf8().Data()); | 233 EXPECT_STREQ(kChars, StringView(atom16_bit).ToString().Utf8().Data()); |
| 235 | 234 |
| 236 // StringView(const AtomicString&, unsigned offset); | 235 // StringView(const AtomicString&, unsigned offset); |
| 237 ASSERT_FALSE(StringView(atom16_bit, 2).Is8Bit()); | 236 ASSERT_FALSE(StringView(atom16_bit, 2).Is8Bit()); |
| 238 EXPECT_FALSE(StringView(atom16_bit, 2).IsNull()); | 237 EXPECT_FALSE(StringView(atom16_bit, 2).IsNull()); |
| 239 EXPECT_EQ(atom16_bit.Characters16() + 2, | 238 EXPECT_EQ(atom16_bit.Characters16() + 2, |
| 240 StringView(atom16_bit, 2).Characters16()); | 239 StringView(atom16_bit, 2).Characters16()); |
| 241 EXPECT_EQ(3u, StringView(atom16_bit, 2).length()); | 240 EXPECT_EQ(3u, StringView(atom16_bit, 2).length()); |
| 242 EXPECT_EQ(StringView("345"), StringView(atom16_bit, 2)); | 241 EXPECT_EQ(StringView("345"), StringView(atom16_bit, 2)); |
| 243 EXPECT_STREQ("345", StringView(atom16_bit, 2).ToString().Utf8().Data()); | 242 EXPECT_STREQ("345", StringView(atom16_bit, 2).ToString().Utf8().Data()); |
| 244 | 243 |
| 245 // StringView(const AtomicString&, unsigned offset, unsigned length); | 244 // StringView(const AtomicString&, unsigned offset, unsigned length); |
| 246 ASSERT_FALSE(StringView(atom16_bit, 2, 1).Is8Bit()); | 245 ASSERT_FALSE(StringView(atom16_bit, 2, 1).Is8Bit()); |
| 247 EXPECT_FALSE(StringView(atom16_bit, 2, 1).IsNull()); | 246 EXPECT_FALSE(StringView(atom16_bit, 2, 1).IsNull()); |
| 248 EXPECT_EQ(atom16_bit.Characters16() + 2, | 247 EXPECT_EQ(atom16_bit.Characters16() + 2, |
| 249 StringView(atom16_bit, 2, 1).Characters16()); | 248 StringView(atom16_bit, 2, 1).Characters16()); |
| 250 EXPECT_EQ(1u, StringView(atom16_bit, 2, 1).length()); | 249 EXPECT_EQ(1u, StringView(atom16_bit, 2, 1).length()); |
| 251 EXPECT_EQ(StringView("3"), StringView(atom16_bit, 2, 1)); | 250 EXPECT_EQ(StringView("3"), StringView(atom16_bit, 2, 1)); |
| 252 EXPECT_STREQ("3", StringView(atom16_bit, 2, 1).ToString().Utf8().Data()); | 251 EXPECT_STREQ("3", StringView(atom16_bit, 2, 1).ToString().Utf8().Data()); |
| 253 } | 252 } |
| 254 | 253 |
| 255 TEST(StringViewTest, ConstructionStringView8) { | 254 TEST(StringViewTest, ConstructionStringView8) { |
| 256 StringView view8_bit = StringView(g_k_chars8, 5); | 255 StringView view8_bit = StringView(kChars8, 5); |
| 257 | 256 |
| 258 // StringView(StringView&); | 257 // StringView(StringView&); |
| 259 ASSERT_TRUE(StringView(view8_bit).Is8Bit()); | 258 ASSERT_TRUE(StringView(view8_bit).Is8Bit()); |
| 260 EXPECT_FALSE(StringView(view8_bit).IsNull()); | 259 EXPECT_FALSE(StringView(view8_bit).IsNull()); |
| 261 EXPECT_EQ(view8_bit.Characters8(), StringView(view8_bit).Characters8()); | 260 EXPECT_EQ(view8_bit.Characters8(), StringView(view8_bit).Characters8()); |
| 262 EXPECT_EQ(view8_bit.length(), StringView(view8_bit).length()); | 261 EXPECT_EQ(view8_bit.length(), StringView(view8_bit).length()); |
| 263 EXPECT_STREQ(g_k_chars, StringView(view8_bit).ToString().Utf8().Data()); | 262 EXPECT_STREQ(kChars, StringView(view8_bit).ToString().Utf8().Data()); |
| 264 | 263 |
| 265 // StringView(const StringView&, unsigned offset); | 264 // StringView(const StringView&, unsigned offset); |
| 266 ASSERT_TRUE(StringView(view8_bit, 2).Is8Bit()); | 265 ASSERT_TRUE(StringView(view8_bit, 2).Is8Bit()); |
| 267 EXPECT_FALSE(StringView(view8_bit, 2).IsNull()); | 266 EXPECT_FALSE(StringView(view8_bit, 2).IsNull()); |
| 268 EXPECT_EQ(view8_bit.Characters8() + 2, | 267 EXPECT_EQ(view8_bit.Characters8() + 2, |
| 269 StringView(view8_bit, 2).Characters8()); | 268 StringView(view8_bit, 2).Characters8()); |
| 270 EXPECT_EQ(3u, StringView(view8_bit, 2).length()); | 269 EXPECT_EQ(3u, StringView(view8_bit, 2).length()); |
| 271 EXPECT_EQ(StringView("345"), StringView(view8_bit, 2)); | 270 EXPECT_EQ(StringView("345"), StringView(view8_bit, 2)); |
| 272 EXPECT_STREQ("345", StringView(view8_bit, 2).ToString().Utf8().Data()); | 271 EXPECT_STREQ("345", StringView(view8_bit, 2).ToString().Utf8().Data()); |
| 273 | 272 |
| 274 // StringView(const StringView&, unsigned offset, unsigned length); | 273 // StringView(const StringView&, unsigned offset, unsigned length); |
| 275 ASSERT_TRUE(StringView(view8_bit, 2, 1).Is8Bit()); | 274 ASSERT_TRUE(StringView(view8_bit, 2, 1).Is8Bit()); |
| 276 EXPECT_FALSE(StringView(view8_bit, 2, 1).IsNull()); | 275 EXPECT_FALSE(StringView(view8_bit, 2, 1).IsNull()); |
| 277 EXPECT_EQ(view8_bit.Characters8() + 2, | 276 EXPECT_EQ(view8_bit.Characters8() + 2, |
| 278 StringView(view8_bit, 2, 1).Characters8()); | 277 StringView(view8_bit, 2, 1).Characters8()); |
| 279 EXPECT_EQ(1u, StringView(view8_bit, 2, 1).length()); | 278 EXPECT_EQ(1u, StringView(view8_bit, 2, 1).length()); |
| 280 EXPECT_EQ(StringView("3"), StringView(view8_bit, 2, 1)); | 279 EXPECT_EQ(StringView("3"), StringView(view8_bit, 2, 1)); |
| 281 EXPECT_STREQ("3", StringView(view8_bit, 2, 1).ToString().Utf8().Data()); | 280 EXPECT_STREQ("3", StringView(view8_bit, 2, 1).ToString().Utf8().Data()); |
| 282 } | 281 } |
| 283 | 282 |
| 284 TEST(StringViewTest, ConstructionStringView16) { | 283 TEST(StringViewTest, ConstructionStringView16) { |
| 285 StringView view16_bit = StringView(g_k_chars16, 5); | 284 StringView view16_bit = StringView(kChars16, 5); |
| 286 | 285 |
| 287 // StringView(StringView&); | 286 // StringView(StringView&); |
| 288 ASSERT_FALSE(StringView(view16_bit).Is8Bit()); | 287 ASSERT_FALSE(StringView(view16_bit).Is8Bit()); |
| 289 EXPECT_FALSE(StringView(view16_bit).IsNull()); | 288 EXPECT_FALSE(StringView(view16_bit).IsNull()); |
| 290 EXPECT_EQ(view16_bit.Characters16(), StringView(view16_bit).Characters16()); | 289 EXPECT_EQ(view16_bit.Characters16(), StringView(view16_bit).Characters16()); |
| 291 EXPECT_EQ(view16_bit.length(), StringView(view16_bit).length()); | 290 EXPECT_EQ(view16_bit.length(), StringView(view16_bit).length()); |
| 292 EXPECT_EQ(g_k_chars, StringView(view16_bit).ToString()); | 291 EXPECT_EQ(kChars, StringView(view16_bit).ToString()); |
| 293 | 292 |
| 294 // StringView(const StringView&, unsigned offset); | 293 // StringView(const StringView&, unsigned offset); |
| 295 ASSERT_FALSE(StringView(view16_bit, 2).Is8Bit()); | 294 ASSERT_FALSE(StringView(view16_bit, 2).Is8Bit()); |
| 296 EXPECT_FALSE(StringView(view16_bit, 2).IsNull()); | 295 EXPECT_FALSE(StringView(view16_bit, 2).IsNull()); |
| 297 EXPECT_EQ(view16_bit.Characters16() + 2, | 296 EXPECT_EQ(view16_bit.Characters16() + 2, |
| 298 StringView(view16_bit, 2).Characters16()); | 297 StringView(view16_bit, 2).Characters16()); |
| 299 EXPECT_EQ(3u, StringView(view16_bit, 2).length()); | 298 EXPECT_EQ(3u, StringView(view16_bit, 2).length()); |
| 300 EXPECT_EQ(StringView("345"), StringView(view16_bit, 2)); | 299 EXPECT_EQ(StringView("345"), StringView(view16_bit, 2)); |
| 301 EXPECT_STREQ("345", StringView(view16_bit, 2).ToString().Utf8().Data()); | 300 EXPECT_STREQ("345", StringView(view16_bit, 2).ToString().Utf8().Data()); |
| 302 | 301 |
| 303 // StringView(const StringView&, unsigned offset, unsigned length); | 302 // StringView(const StringView&, unsigned offset, unsigned length); |
| 304 ASSERT_FALSE(StringView(view16_bit, 2, 1).Is8Bit()); | 303 ASSERT_FALSE(StringView(view16_bit, 2, 1).Is8Bit()); |
| 305 EXPECT_FALSE(StringView(view16_bit, 2, 1).IsNull()); | 304 EXPECT_FALSE(StringView(view16_bit, 2, 1).IsNull()); |
| 306 EXPECT_EQ(view16_bit.Characters16() + 2, | 305 EXPECT_EQ(view16_bit.Characters16() + 2, |
| 307 StringView(view16_bit, 2, 1).Characters16()); | 306 StringView(view16_bit, 2, 1).Characters16()); |
| 308 EXPECT_EQ(1u, StringView(view16_bit, 2, 1).length()); | 307 EXPECT_EQ(1u, StringView(view16_bit, 2, 1).length()); |
| 309 EXPECT_EQ(StringView("3"), StringView(view16_bit, 2, 1)); | 308 EXPECT_EQ(StringView("3"), StringView(view16_bit, 2, 1)); |
| 310 EXPECT_STREQ("3", StringView(view16_bit, 2, 1).ToString().Utf8().Data()); | 309 EXPECT_STREQ("3", StringView(view16_bit, 2, 1).ToString().Utf8().Data()); |
| 311 } | 310 } |
| 312 | 311 |
| 313 TEST(StringViewTest, ConstructionLiteral8) { | 312 TEST(StringViewTest, ConstructionLiteral8) { |
| 314 // StringView(const LChar* chars); | 313 // StringView(const LChar* chars); |
| 315 ASSERT_TRUE(StringView(g_k_chars8).Is8Bit()); | 314 ASSERT_TRUE(StringView(kChars8).Is8Bit()); |
| 316 EXPECT_FALSE(StringView(g_k_chars8).IsNull()); | 315 EXPECT_FALSE(StringView(kChars8).IsNull()); |
| 317 EXPECT_EQ(g_k_chars8, StringView(g_k_chars8).Characters8()); | 316 EXPECT_EQ(kChars8, StringView(kChars8).Characters8()); |
| 318 EXPECT_EQ(5u, StringView(g_k_chars8).length()); | 317 EXPECT_EQ(5u, StringView(kChars8).length()); |
| 319 EXPECT_STREQ(g_k_chars, StringView(g_k_chars8).ToString().Utf8().Data()); | 318 EXPECT_STREQ(kChars, StringView(kChars8).ToString().Utf8().Data()); |
| 320 | 319 |
| 321 // StringView(const char* chars); | 320 // StringView(const char* chars); |
| 322 ASSERT_TRUE(StringView(g_k_chars).Is8Bit()); | 321 ASSERT_TRUE(StringView(kChars).Is8Bit()); |
| 323 EXPECT_FALSE(StringView(g_k_chars).IsNull()); | 322 EXPECT_FALSE(StringView(kChars).IsNull()); |
| 324 EXPECT_EQ(g_k_chars8, StringView(g_k_chars).Characters8()); | 323 EXPECT_EQ(kChars8, StringView(kChars).Characters8()); |
| 325 EXPECT_EQ(5u, StringView(g_k_chars).length()); | 324 EXPECT_EQ(5u, StringView(kChars).length()); |
| 326 EXPECT_STREQ(g_k_chars, StringView(g_k_chars).ToString().Utf8().Data()); | 325 EXPECT_STREQ(kChars, StringView(kChars).ToString().Utf8().Data()); |
| 327 | 326 |
| 328 // StringView(const LChar* chars, unsigned length); | 327 // StringView(const LChar* chars, unsigned length); |
| 329 ASSERT_TRUE(StringView(g_k_chars8, 2).Is8Bit()); | 328 ASSERT_TRUE(StringView(kChars8, 2).Is8Bit()); |
| 330 EXPECT_FALSE(StringView(g_k_chars8, 2).IsNull()); | 329 EXPECT_FALSE(StringView(kChars8, 2).IsNull()); |
| 331 EXPECT_EQ(2u, StringView(g_k_chars8, 2).length()); | 330 EXPECT_EQ(2u, StringView(kChars8, 2).length()); |
| 332 EXPECT_EQ(StringView("12"), StringView(g_k_chars8, 2)); | 331 EXPECT_EQ(StringView("12"), StringView(kChars8, 2)); |
| 333 EXPECT_STREQ("12", StringView(g_k_chars8, 2).ToString().Utf8().Data()); | 332 EXPECT_STREQ("12", StringView(kChars8, 2).ToString().Utf8().Data()); |
| 334 | 333 |
| 335 // StringView(const char* chars, unsigned length); | 334 // StringView(const char* chars, unsigned length); |
| 336 ASSERT_TRUE(StringView(g_k_chars, 2).Is8Bit()); | 335 ASSERT_TRUE(StringView(kChars, 2).Is8Bit()); |
| 337 EXPECT_FALSE(StringView(g_k_chars, 2).IsNull()); | 336 EXPECT_FALSE(StringView(kChars, 2).IsNull()); |
| 338 EXPECT_EQ(2u, StringView(g_k_chars, 2).length()); | 337 EXPECT_EQ(2u, StringView(kChars, 2).length()); |
| 339 EXPECT_EQ(StringView("12"), StringView(g_k_chars, 2)); | 338 EXPECT_EQ(StringView("12"), StringView(kChars, 2)); |
| 340 EXPECT_STREQ("12", StringView(g_k_chars, 2).ToString().Utf8().Data()); | 339 EXPECT_STREQ("12", StringView(kChars, 2).ToString().Utf8().Data()); |
| 341 } | 340 } |
| 342 | 341 |
| 343 TEST(StringViewTest, ConstructionLiteral16) { | 342 TEST(StringViewTest, ConstructionLiteral16) { |
| 344 // StringView(const UChar* chars); | 343 // StringView(const UChar* chars); |
| 345 ASSERT_FALSE(StringView(g_k_chars16).Is8Bit()); | 344 ASSERT_FALSE(StringView(kChars16).Is8Bit()); |
| 346 EXPECT_FALSE(StringView(g_k_chars16).IsNull()); | 345 EXPECT_FALSE(StringView(kChars16).IsNull()); |
| 347 EXPECT_EQ(g_k_chars16, StringView(g_k_chars16).Characters16()); | 346 EXPECT_EQ(kChars16, StringView(kChars16).Characters16()); |
| 348 EXPECT_EQ(5u, StringView(g_k_chars16).length()); | 347 EXPECT_EQ(5u, StringView(kChars16).length()); |
| 349 EXPECT_EQ(String(g_k_chars16), | 348 EXPECT_EQ(String(kChars16), StringView(kChars16).ToString().Utf8().Data()); |
| 350 StringView(g_k_chars16).ToString().Utf8().Data()); | |
| 351 | 349 |
| 352 // StringView(const UChar* chars, unsigned length); | 350 // StringView(const UChar* chars, unsigned length); |
| 353 ASSERT_FALSE(StringView(g_k_chars16, 2).Is8Bit()); | 351 ASSERT_FALSE(StringView(kChars16, 2).Is8Bit()); |
| 354 EXPECT_FALSE(StringView(g_k_chars16, 2).IsNull()); | 352 EXPECT_FALSE(StringView(kChars16, 2).IsNull()); |
| 355 EXPECT_EQ(g_k_chars16, StringView(g_k_chars16, 2).Characters16()); | 353 EXPECT_EQ(kChars16, StringView(kChars16, 2).Characters16()); |
| 356 EXPECT_EQ(StringView("12"), StringView(g_k_chars16, 2)); | 354 EXPECT_EQ(StringView("12"), StringView(kChars16, 2)); |
| 357 EXPECT_EQ(StringView(reinterpret_cast<const UChar*>(u"12")), | 355 EXPECT_EQ(StringView(reinterpret_cast<const UChar*>(u"12")), |
| 358 StringView(g_k_chars16, 2)); | 356 StringView(kChars16, 2)); |
| 359 EXPECT_EQ(2u, StringView(g_k_chars16, 2).length()); | 357 EXPECT_EQ(2u, StringView(kChars16, 2).length()); |
| 360 EXPECT_EQ(String("12"), StringView(g_k_chars16, 2).ToString()); | 358 EXPECT_EQ(String("12"), StringView(kChars16, 2).ToString()); |
| 361 } | 359 } |
| 362 | 360 |
| 363 TEST(StringViewTest, IsEmpty) { | 361 TEST(StringViewTest, IsEmpty) { |
| 364 EXPECT_FALSE(StringView(g_k_chars).IsEmpty()); | 362 EXPECT_FALSE(StringView(kChars).IsEmpty()); |
| 365 EXPECT_TRUE(StringView(g_k_chars, 0).IsEmpty()); | 363 EXPECT_TRUE(StringView(kChars, 0).IsEmpty()); |
| 366 EXPECT_FALSE(StringView(String(g_k_chars)).IsEmpty()); | 364 EXPECT_FALSE(StringView(String(kChars)).IsEmpty()); |
| 367 EXPECT_TRUE(StringView(String(g_k_chars), 5).IsEmpty()); | 365 EXPECT_TRUE(StringView(String(kChars), 5).IsEmpty()); |
| 368 EXPECT_TRUE(StringView(String(g_k_chars), 4, 0).IsEmpty()); | 366 EXPECT_TRUE(StringView(String(kChars), 4, 0).IsEmpty()); |
| 369 EXPECT_TRUE(StringView().IsEmpty()); | 367 EXPECT_TRUE(StringView().IsEmpty()); |
| 370 EXPECT_TRUE(StringView("").IsEmpty()); | 368 EXPECT_TRUE(StringView("").IsEmpty()); |
| 371 EXPECT_TRUE(StringView(reinterpret_cast<const UChar*>(u"")).IsEmpty()); | 369 EXPECT_TRUE(StringView(reinterpret_cast<const UChar*>(u"")).IsEmpty()); |
| 372 EXPECT_FALSE(StringView(g_k_chars16).IsEmpty()); | 370 EXPECT_FALSE(StringView(kChars16).IsEmpty()); |
| 373 } | 371 } |
| 374 | 372 |
| 375 TEST(StringViewTest, ToString) { | 373 TEST(StringViewTest, ToString) { |
| 376 EXPECT_EQ(g_empty_string.Impl(), StringView("").ToString().Impl()); | 374 EXPECT_EQ(g_empty_string.Impl(), StringView("").ToString().Impl()); |
| 377 EXPECT_EQ(g_null_atom.Impl(), StringView().ToString().Impl()); | 375 EXPECT_EQ(g_null_atom.Impl(), StringView().ToString().Impl()); |
| 378 // NOTE: All the construction tests also check toString(). | 376 // NOTE: All the construction tests also check toString(). |
| 379 } | 377 } |
| 380 | 378 |
| 381 TEST(StringViewTest, ToAtomicString) { | 379 TEST(StringViewTest, ToAtomicString) { |
| 382 EXPECT_EQ(g_null_atom.Impl(), StringView().ToAtomicString()); | 380 EXPECT_EQ(g_null_atom.Impl(), StringView().ToAtomicString()); |
| 383 EXPECT_EQ(g_empty_atom.Impl(), StringView("").ToAtomicString()); | 381 EXPECT_EQ(g_empty_atom.Impl(), StringView("").ToAtomicString()); |
| 384 EXPECT_EQ(AtomicString("12"), StringView(g_k_chars8, 2).ToAtomicString()); | 382 EXPECT_EQ(AtomicString("12"), StringView(kChars8, 2).ToAtomicString()); |
| 385 // AtomicString will convert to 8bit if possible when creating the string. | 383 // AtomicString will convert to 8bit if possible when creating the string. |
| 386 EXPECT_EQ(AtomicString("12").Impl(), | 384 EXPECT_EQ(AtomicString("12").Impl(), |
| 387 StringView(g_k_chars16, 2).ToAtomicString().Impl()); | 385 StringView(kChars16, 2).ToAtomicString().Impl()); |
| 388 } | 386 } |
| 389 | 387 |
| 390 TEST(StringViewTest, ToStringImplSharing) { | 388 TEST(StringViewTest, ToStringImplSharing) { |
| 391 String string(g_k_chars); | 389 String string(kChars); |
| 392 EXPECT_EQ(string.Impl(), StringView(string).SharedImpl()); | 390 EXPECT_EQ(string.Impl(), StringView(string).SharedImpl()); |
| 393 EXPECT_EQ(string.Impl(), StringView(string).ToString().Impl()); | 391 EXPECT_EQ(string.Impl(), StringView(string).ToString().Impl()); |
| 394 EXPECT_EQ(string.Impl(), StringView(string).ToAtomicString().Impl()); | 392 EXPECT_EQ(string.Impl(), StringView(string).ToAtomicString().Impl()); |
| 395 } | 393 } |
| 396 | 394 |
| 397 TEST(StringViewTest, NullString) { | 395 TEST(StringViewTest, NullString) { |
| 398 EXPECT_TRUE(StringView().IsNull()); | 396 EXPECT_TRUE(StringView().IsNull()); |
| 399 EXPECT_TRUE(StringView(String()).IsNull()); | 397 EXPECT_TRUE(StringView(String()).IsNull()); |
| 400 EXPECT_TRUE(StringView(AtomicString()).IsNull()); | 398 EXPECT_TRUE(StringView(AtomicString()).IsNull()); |
| 401 EXPECT_TRUE(StringView(static_cast<const char*>(nullptr)).IsNull()); | 399 EXPECT_TRUE(StringView(static_cast<const char*>(nullptr)).IsNull()); |
| 402 StringView view(g_k_chars); | 400 StringView view(kChars); |
| 403 EXPECT_FALSE(view.IsNull()); | 401 EXPECT_FALSE(view.IsNull()); |
| 404 view.Clear(); | 402 view.Clear(); |
| 405 EXPECT_TRUE(view.IsNull()); | 403 EXPECT_TRUE(view.IsNull()); |
| 406 EXPECT_EQ(String(), StringView()); | 404 EXPECT_EQ(String(), StringView()); |
| 407 EXPECT_TRUE(StringView().ToString().IsNull()); | 405 EXPECT_TRUE(StringView().ToString().IsNull()); |
| 408 EXPECT_FALSE(EqualStringView(StringView(), "")); | 406 EXPECT_FALSE(EqualStringView(StringView(), "")); |
| 409 EXPECT_TRUE(EqualStringView(StringView(), StringView())); | 407 EXPECT_TRUE(EqualStringView(StringView(), StringView())); |
| 410 EXPECT_FALSE(EqualStringView(StringView(), "abc")); | 408 EXPECT_FALSE(EqualStringView(StringView(), "abc")); |
| 411 EXPECT_FALSE(EqualStringView("abc", StringView())); | 409 EXPECT_FALSE(EqualStringView("abc", StringView())); |
| 412 EXPECT_FALSE(EqualIgnoringASCIICase(StringView(), "")); | 410 EXPECT_FALSE(EqualIgnoringASCIICase(StringView(), "")); |
| 413 EXPECT_TRUE(EqualIgnoringASCIICase(StringView(), StringView())); | 411 EXPECT_TRUE(EqualIgnoringASCIICase(StringView(), StringView())); |
| 414 EXPECT_FALSE(EqualIgnoringASCIICase(StringView(), "abc")); | 412 EXPECT_FALSE(EqualIgnoringASCIICase(StringView(), "abc")); |
| 415 EXPECT_FALSE(EqualIgnoringASCIICase("abc", StringView())); | 413 EXPECT_FALSE(EqualIgnoringASCIICase("abc", StringView())); |
| 416 } | 414 } |
| 417 | 415 |
| 418 TEST(StringViewTest, IndexAccess) { | 416 TEST(StringViewTest, IndexAccess) { |
| 419 StringView view8(g_k_chars8); | 417 StringView view8(kChars8); |
| 420 EXPECT_EQ('1', view8[0]); | 418 EXPECT_EQ('1', view8[0]); |
| 421 EXPECT_EQ('3', view8[2]); | 419 EXPECT_EQ('3', view8[2]); |
| 422 StringView view16(g_k_chars16); | 420 StringView view16(kChars16); |
| 423 EXPECT_EQ('1', view16[0]); | 421 EXPECT_EQ('1', view16[0]); |
| 424 EXPECT_EQ('3', view16[2]); | 422 EXPECT_EQ('3', view16[2]); |
| 425 } | 423 } |
| 426 | 424 |
| 427 TEST(StringViewTest, EqualIgnoringASCIICase) { | 425 TEST(StringViewTest, EqualIgnoringASCIICase) { |
| 428 static const char* link8 = "link"; | 426 static const char* link8 = "link"; |
| 429 static const char* link_caps8 = "LINK"; | 427 static const char* link_caps8 = "LINK"; |
| 430 static const char* non_ascii8 = "a\xE1"; | 428 static const char* non_ascii8 = "a\xE1"; |
| 431 static const char* non_ascii_caps8 = "A\xE1"; | 429 static const char* non_ascii_caps8 = "A\xE1"; |
| 432 static const char* non_ascii_invalid8 = "a\xC1"; | 430 static const char* non_ascii_invalid8 = "a\xC1"; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 457 EXPECT_FALSE(EqualIgnoringASCIICase(StringView("link"), "INKL")); | 455 EXPECT_FALSE(EqualIgnoringASCIICase(StringView("link"), "INKL")); |
| 458 EXPECT_FALSE( | 456 EXPECT_FALSE( |
| 459 EqualIgnoringASCIICase(StringView("link"), "link different length")); | 457 EqualIgnoringASCIICase(StringView("link"), "link different length")); |
| 460 EXPECT_FALSE( | 458 EXPECT_FALSE( |
| 461 EqualIgnoringASCIICase(StringView("link different length"), "link")); | 459 EqualIgnoringASCIICase(StringView("link different length"), "link")); |
| 462 | 460 |
| 463 EXPECT_TRUE(EqualIgnoringASCIICase(StringView(""), "")); | 461 EXPECT_TRUE(EqualIgnoringASCIICase(StringView(""), "")); |
| 464 } | 462 } |
| 465 | 463 |
| 466 } // namespace WTF | 464 } // namespace WTF |
| OLD | NEW |