| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "core/dom/shadow/FlatTreeTraversal.h" | 5 #include "core/dom/shadow/FlatTreeTraversal.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/ExceptionStatePlaceholder.h" | 7 #include "bindings/core/v8/ExceptionStatePlaceholder.h" |
| 8 #include "core/dom/Document.h" | 8 #include "core/dom/Document.h" |
| 9 #include "core/dom/Element.h" | 9 #include "core/dom/Element.h" |
| 10 #include "core/dom/Node.h" | 10 #include "core/dom/Node.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 void setupSampleHTML(const char* mainHTML, const char* shadowHTML, unsigned)
; | 35 void setupSampleHTML(const char* mainHTML, const char* shadowHTML, unsigned)
; |
| 36 | 36 |
| 37 void setupDocumentTree(const char* mainHTML); | 37 void setupDocumentTree(const char* mainHTML); |
| 38 | 38 |
| 39 void attachV0ShadowRoot(Element& shadowHost, const char* shadowInnerHTML); | 39 void attachV0ShadowRoot(Element& shadowHost, const char* shadowInnerHTML); |
| 40 void attachOpenShadowRoot(Element& shadowHost, const char* shadowInnerHTML); | 40 void attachOpenShadowRoot(Element& shadowHost, const char* shadowInnerHTML); |
| 41 | 41 |
| 42 private: | 42 private: |
| 43 void SetUp() override; | 43 void SetUp() override; |
| 44 | 44 |
| 45 RefPtrWillBePersistent<HTMLDocument> m_document; | 45 Persistent<HTMLDocument> m_document; |
| 46 OwnPtr<DummyPageHolder> m_dummyPageHolder; | 46 OwnPtr<DummyPageHolder> m_dummyPageHolder; |
| 47 }; | 47 }; |
| 48 | 48 |
| 49 void FlatTreeTraversalTest::SetUp() | 49 void FlatTreeTraversalTest::SetUp() |
| 50 { | 50 { |
| 51 m_dummyPageHolder = DummyPageHolder::create(IntSize(800, 600)); | 51 m_dummyPageHolder = DummyPageHolder::create(IntSize(800, 600)); |
| 52 m_document = toHTMLDocument(&m_dummyPageHolder->document()); | 52 m_document = toHTMLDocument(&m_dummyPageHolder->document()); |
| 53 ASSERT(m_document); | 53 ASSERT(m_document); |
| 54 } | 54 } |
| 55 | 55 |
| 56 HTMLDocument& FlatTreeTraversalTest::document() const | 56 HTMLDocument& FlatTreeTraversalTest::document() const |
| 57 { | 57 { |
| 58 return *m_document; | 58 return *m_document; |
| 59 } | 59 } |
| 60 | 60 |
| 61 void FlatTreeTraversalTest::setupSampleHTML(const char* mainHTML, const char* sh
adowHTML, unsigned index) | 61 void FlatTreeTraversalTest::setupSampleHTML(const char* mainHTML, const char* sh
adowHTML, unsigned index) |
| 62 { | 62 { |
| 63 RefPtrWillBeRawPtr<Element> body = document().body(); | 63 RawPtr<Element> body = document().body(); |
| 64 body->setInnerHTML(String::fromUTF8(mainHTML), ASSERT_NO_EXCEPTION); | 64 body->setInnerHTML(String::fromUTF8(mainHTML), ASSERT_NO_EXCEPTION); |
| 65 RefPtrWillBeRawPtr<Element> shadowHost = toElement(NodeTraversal::childAt(*b
ody, index)); | 65 RawPtr<Element> shadowHost = toElement(NodeTraversal::childAt(*body, index))
; |
| 66 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = shadowHost->createShadowRootInte
rnal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); | 66 RawPtr<ShadowRoot> shadowRoot = shadowHost->createShadowRootInternal(ShadowR
ootType::V0, ASSERT_NO_EXCEPTION); |
| 67 shadowRoot->setInnerHTML(String::fromUTF8(shadowHTML), ASSERT_NO_EXCEPTION); | 67 shadowRoot->setInnerHTML(String::fromUTF8(shadowHTML), ASSERT_NO_EXCEPTION); |
| 68 body->updateDistribution(); | 68 body->updateDistribution(); |
| 69 } | 69 } |
| 70 | 70 |
| 71 void FlatTreeTraversalTest::setupDocumentTree(const char* mainHTML) | 71 void FlatTreeTraversalTest::setupDocumentTree(const char* mainHTML) |
| 72 { | 72 { |
| 73 RefPtrWillBeRawPtr<Element> body = document().body(); | 73 RawPtr<Element> body = document().body(); |
| 74 body->setInnerHTML(String::fromUTF8(mainHTML), ASSERT_NO_EXCEPTION); | 74 body->setInnerHTML(String::fromUTF8(mainHTML), ASSERT_NO_EXCEPTION); |
| 75 } | 75 } |
| 76 | 76 |
| 77 void FlatTreeTraversalTest::attachV0ShadowRoot(Element& shadowHost, const char*
shadowInnerHTML) | 77 void FlatTreeTraversalTest::attachV0ShadowRoot(Element& shadowHost, const char*
shadowInnerHTML) |
| 78 { | 78 { |
| 79 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = shadowHost.createShadowRootInter
nal(ShadowRootType::V0, ASSERT_NO_EXCEPTION); | 79 RawPtr<ShadowRoot> shadowRoot = shadowHost.createShadowRootInternal(ShadowRo
otType::V0, ASSERT_NO_EXCEPTION); |
| 80 shadowRoot->setInnerHTML(String::fromUTF8(shadowInnerHTML), ASSERT_NO_EXCEPT
ION); | 80 shadowRoot->setInnerHTML(String::fromUTF8(shadowInnerHTML), ASSERT_NO_EXCEPT
ION); |
| 81 document().body()->updateDistribution(); | 81 document().body()->updateDistribution(); |
| 82 } | 82 } |
| 83 | 83 |
| 84 void FlatTreeTraversalTest::attachOpenShadowRoot(Element& shadowHost, const char
* shadowInnerHTML) | 84 void FlatTreeTraversalTest::attachOpenShadowRoot(Element& shadowHost, const char
* shadowInnerHTML) |
| 85 { | 85 { |
| 86 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = shadowHost.createShadowRootInter
nal(ShadowRootType::Open, ASSERT_NO_EXCEPTION); | 86 RawPtr<ShadowRoot> shadowRoot = shadowHost.createShadowRootInternal(ShadowRo
otType::Open, ASSERT_NO_EXCEPTION); |
| 87 shadowRoot->setInnerHTML(String::fromUTF8(shadowInnerHTML), ASSERT_NO_EXCEPT
ION); | 87 shadowRoot->setInnerHTML(String::fromUTF8(shadowInnerHTML), ASSERT_NO_EXCEPT
ION); |
| 88 document().body()->updateDistribution(); | 88 document().body()->updateDistribution(); |
| 89 } | 89 } |
| 90 | 90 |
| 91 void testCommonAncestor(Node* expectedResult, const Node& nodeA, const Node& nod
eB) | 91 void testCommonAncestor(Node* expectedResult, const Node& nodeA, const Node& nod
eB) |
| 92 { | 92 { |
| 93 Node* result1 = FlatTreeTraversal::commonAncestor(nodeA, nodeB); | 93 Node* result1 = FlatTreeTraversal::commonAncestor(nodeA, nodeB); |
| 94 EXPECT_EQ(expectedResult, result1) << "commonAncestor(" << nodeA.textContent
() << "," << nodeB.textContent() << ")"; | 94 EXPECT_EQ(expectedResult, result1) << "commonAncestor(" << nodeA.textContent
() << "," << nodeB.textContent() << ")"; |
| 95 Node* result2 = FlatTreeTraversal::commonAncestor(nodeB, nodeA); | 95 Node* result2 = FlatTreeTraversal::commonAncestor(nodeB, nodeA); |
| 96 EXPECT_EQ(expectedResult, result2) << "commonAncestor(" << nodeB.textContent
() << "," << nodeA.textContent() << ")"; | 96 EXPECT_EQ(expectedResult, result2) << "commonAncestor(" << nodeB.textContent
() << "," << nodeA.textContent() << ")"; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 110 "<span id='m01'>m01</span>" | 110 "<span id='m01'>m01</span>" |
| 111 "</div>"; | 111 "</div>"; |
| 112 const char* shadowHTML = | 112 const char* shadowHTML = |
| 113 "<a id='s00'>s00</a>" | 113 "<a id='s00'>s00</a>" |
| 114 "<content select='#m01'></content>" | 114 "<content select='#m01'></content>" |
| 115 "<a id='s02'>s02</a>" | 115 "<a id='s02'>s02</a>" |
| 116 "<a id='s03'><content select='#m00'></content></a>" | 116 "<a id='s03'><content select='#m00'></content></a>" |
| 117 "<a id='s04'>s04</a>"; | 117 "<a id='s04'>s04</a>"; |
| 118 setupSampleHTML(mainHTML, shadowHTML, 0); | 118 setupSampleHTML(mainHTML, shadowHTML, 0); |
| 119 | 119 |
| 120 RefPtrWillBeRawPtr<Element> body = document().body(); | 120 RawPtr<Element> body = document().body(); |
| 121 RefPtrWillBeRawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPT
ION); | 121 RawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION); |
| 122 RefPtrWillBeRawPtr<Element> m00 = m0->querySelector("#m00", ASSERT_NO_EXCEPT
ION); | 122 RawPtr<Element> m00 = m0->querySelector("#m00", ASSERT_NO_EXCEPTION); |
| 123 RefPtrWillBeRawPtr<Element> m01 = m0->querySelector("#m01", ASSERT_NO_EXCEPT
ION); | 123 RawPtr<Element> m01 = m0->querySelector("#m01", ASSERT_NO_EXCEPTION); |
| 124 | 124 |
| 125 RefPtrWillBeRawPtr<Element> shadowHost = m0; | 125 RawPtr<Element> shadowHost = m0; |
| 126 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = shadowHost->openShadowRoot(); | 126 RawPtr<ShadowRoot> shadowRoot = shadowHost->openShadowRoot(); |
| 127 RefPtrWillBeRawPtr<Element> s00 = shadowRoot->querySelector("#s00", ASSERT_N
O_EXCEPTION); | 127 RawPtr<Element> s00 = shadowRoot->querySelector("#s00", ASSERT_NO_EXCEPTION)
; |
| 128 RefPtrWillBeRawPtr<Element> s02 = shadowRoot->querySelector("#s02", ASSERT_N
O_EXCEPTION); | 128 RawPtr<Element> s02 = shadowRoot->querySelector("#s02", ASSERT_NO_EXCEPTION)
; |
| 129 RefPtrWillBeRawPtr<Element> s03 = shadowRoot->querySelector("#s03", ASSERT_N
O_EXCEPTION); | 129 RawPtr<Element> s03 = shadowRoot->querySelector("#s03", ASSERT_NO_EXCEPTION)
; |
| 130 RefPtrWillBeRawPtr<Element> s04 = shadowRoot->querySelector("#s04", ASSERT_N
O_EXCEPTION); | 130 RawPtr<Element> s04 = shadowRoot->querySelector("#s04", ASSERT_NO_EXCEPTION)
; |
| 131 | 131 |
| 132 const unsigned numberOfChildNodes = 5; | 132 const unsigned numberOfChildNodes = 5; |
| 133 Node* expectedChildNodes[5] = { s00.get(), m01.get(), s02.get(), s03.get(),
s04.get() }; | 133 Node* expectedChildNodes[5] = { s00.get(), m01.get(), s02.get(), s03.get(),
s04.get() }; |
| 134 | 134 |
| 135 ASSERT_EQ(numberOfChildNodes, FlatTreeTraversal::countChildren(*shadowHost))
; | 135 ASSERT_EQ(numberOfChildNodes, FlatTreeTraversal::countChildren(*shadowHost))
; |
| 136 EXPECT_TRUE(FlatTreeTraversal::hasChildren(*shadowHost)); | 136 EXPECT_TRUE(FlatTreeTraversal::hasChildren(*shadowHost)); |
| 137 | 137 |
| 138 for (unsigned index = 0; index < numberOfChildNodes; ++index) { | 138 for (unsigned index = 0; index < numberOfChildNodes; ++index) { |
| 139 Node* child = FlatTreeTraversal::childAt(*shadowHost, index); | 139 Node* child = FlatTreeTraversal::childAt(*shadowHost, index); |
| 140 EXPECT_EQ(expectedChildNodes[index], child) | 140 EXPECT_EQ(expectedChildNodes[index], child) |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 const char* shadowHTML = | 185 const char* shadowHTML = |
| 186 "<a id='s10'>s10</a>" | 186 "<a id='s10'>s10</a>" |
| 187 "<a id='s11'><content select='#m12'></content></a>" | 187 "<a id='s11'><content select='#m12'></content></a>" |
| 188 "<a id='s12'>s12</a>" | 188 "<a id='s12'>s12</a>" |
| 189 "<a id='s13'>" | 189 "<a id='s13'>" |
| 190 "<content select='#m10'></content>" | 190 "<content select='#m10'></content>" |
| 191 "<content select='#m11'></content>" | 191 "<content select='#m11'></content>" |
| 192 "</a>" | 192 "</a>" |
| 193 "<a id='s14'>s14</a>"; | 193 "<a id='s14'>s14</a>"; |
| 194 setupSampleHTML(mainHTML, shadowHTML, 1); | 194 setupSampleHTML(mainHTML, shadowHTML, 1); |
| 195 RefPtrWillBeRawPtr<Element> body = document().body(); | 195 RawPtr<Element> body = document().body(); |
| 196 RefPtrWillBeRawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPT
ION); | 196 RawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION); |
| 197 RefPtrWillBeRawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPT
ION); | 197 RawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION); |
| 198 RefPtrWillBeRawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPT
ION); | 198 RawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION); |
| 199 | 199 |
| 200 RefPtrWillBeRawPtr<Element> m00 = body->querySelector("#m00", ASSERT_NO_EXCE
PTION); | 200 RawPtr<Element> m00 = body->querySelector("#m00", ASSERT_NO_EXCEPTION); |
| 201 RefPtrWillBeRawPtr<Element> m01 = body->querySelector("#m01", ASSERT_NO_EXCE
PTION); | 201 RawPtr<Element> m01 = body->querySelector("#m01", ASSERT_NO_EXCEPTION); |
| 202 RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCE
PTION); | 202 RawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION); |
| 203 RefPtrWillBeRawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCE
PTION); | 203 RawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION); |
| 204 RefPtrWillBeRawPtr<Element> m12 = body->querySelector("#m12", ASSERT_NO_EXCE
PTION); | 204 RawPtr<Element> m12 = body->querySelector("#m12", ASSERT_NO_EXCEPTION); |
| 205 RefPtrWillBeRawPtr<Element> m20 = body->querySelector("#m20", ASSERT_NO_EXCE
PTION); | 205 RawPtr<Element> m20 = body->querySelector("#m20", ASSERT_NO_EXCEPTION); |
| 206 RefPtrWillBeRawPtr<Element> m21 = body->querySelector("#m21", ASSERT_NO_EXCE
PTION); | 206 RawPtr<Element> m21 = body->querySelector("#m21", ASSERT_NO_EXCEPTION); |
| 207 | 207 |
| 208 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot(); | 208 RawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot(); |
| 209 RefPtrWillBeRawPtr<Element> s10 = shadowRoot->querySelector("#s10", ASSERT_N
O_EXCEPTION); | 209 RawPtr<Element> s10 = shadowRoot->querySelector("#s10", ASSERT_NO_EXCEPTION)
; |
| 210 RefPtrWillBeRawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_N
O_EXCEPTION); | 210 RawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION)
; |
| 211 RefPtrWillBeRawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_N
O_EXCEPTION); | 211 RawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION)
; |
| 212 RefPtrWillBeRawPtr<Element> s13 = shadowRoot->querySelector("#s13", ASSERT_N
O_EXCEPTION); | 212 RawPtr<Element> s13 = shadowRoot->querySelector("#s13", ASSERT_NO_EXCEPTION)
; |
| 213 RefPtrWillBeRawPtr<Element> s14 = shadowRoot->querySelector("#s14", ASSERT_N
O_EXCEPTION); | 213 RawPtr<Element> s14 = shadowRoot->querySelector("#s14", ASSERT_NO_EXCEPTION)
; |
| 214 | 214 |
| 215 testCommonAncestor(body.get(), *m0, *m1); | 215 testCommonAncestor(body.get(), *m0, *m1); |
| 216 testCommonAncestor(body.get(), *m1, *m2); | 216 testCommonAncestor(body.get(), *m1, *m2); |
| 217 testCommonAncestor(body.get(), *m1, *m20); | 217 testCommonAncestor(body.get(), *m1, *m20); |
| 218 testCommonAncestor(body.get(), *s14, *m21); | 218 testCommonAncestor(body.get(), *s14, *m21); |
| 219 | 219 |
| 220 testCommonAncestor(m0.get(), *m0, *m0); | 220 testCommonAncestor(m0.get(), *m0, *m0); |
| 221 testCommonAncestor(m0.get(), *m00, *m01); | 221 testCommonAncestor(m0.get(), *m00, *m01); |
| 222 | 222 |
| 223 testCommonAncestor(m1.get(), *m1.get(), *m1); | 223 testCommonAncestor(m1.get(), *m1.get(), *m1); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 "<div id='m2'>m2</div>"; | 256 "<div id='m2'>m2</div>"; |
| 257 const char* shadowHTML = | 257 const char* shadowHTML = |
| 258 "<content select='#m11'></content>" | 258 "<content select='#m11'></content>" |
| 259 "<a id='s11'>s11</a>" | 259 "<a id='s11'>s11</a>" |
| 260 "<a id='s12'>" | 260 "<a id='s12'>" |
| 261 "<b id='s120'>s120</b>" | 261 "<b id='s120'>s120</b>" |
| 262 "<content select='#m10'></content>" | 262 "<content select='#m10'></content>" |
| 263 "</a>"; | 263 "</a>"; |
| 264 setupSampleHTML(mainHTML, shadowHTML, 1); | 264 setupSampleHTML(mainHTML, shadowHTML, 1); |
| 265 | 265 |
| 266 RefPtrWillBeRawPtr<Element> body = document().body(); | 266 RawPtr<Element> body = document().body(); |
| 267 RefPtrWillBeRawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPT
ION); | 267 RawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION); |
| 268 RefPtrWillBeRawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPT
ION); | 268 RawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION); |
| 269 RefPtrWillBeRawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPT
ION); | 269 RawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION); |
| 270 | 270 |
| 271 RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCE
PTION); | 271 RawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION); |
| 272 RefPtrWillBeRawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCE
PTION); | 272 RawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION); |
| 273 | 273 |
| 274 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot(); | 274 RawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot(); |
| 275 RefPtrWillBeRawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_N
O_EXCEPTION); | 275 RawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION)
; |
| 276 RefPtrWillBeRawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_N
O_EXCEPTION); | 276 RawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION)
; |
| 277 RefPtrWillBeRawPtr<Element> s120 = shadowRoot->querySelector("#s120", ASSERT
_NO_EXCEPTION); | 277 RawPtr<Element> s120 = shadowRoot->querySelector("#s120", ASSERT_NO_EXCEPTIO
N); |
| 278 | 278 |
| 279 // Main tree node to main tree node | 279 // Main tree node to main tree node |
| 280 EXPECT_EQ(*m1, FlatTreeTraversal::nextSkippingChildren(*m0)); | 280 EXPECT_EQ(*m1, FlatTreeTraversal::nextSkippingChildren(*m0)); |
| 281 EXPECT_EQ(*m0, FlatTreeTraversal::previousSkippingChildren(*m1)); | 281 EXPECT_EQ(*m0, FlatTreeTraversal::previousSkippingChildren(*m1)); |
| 282 | 282 |
| 283 // Distribute node to main tree node | 283 // Distribute node to main tree node |
| 284 EXPECT_EQ(*m2, FlatTreeTraversal::nextSkippingChildren(*m10)); | 284 EXPECT_EQ(*m2, FlatTreeTraversal::nextSkippingChildren(*m10)); |
| 285 EXPECT_EQ(*m1, FlatTreeTraversal::previousSkippingChildren(*m2)); | 285 EXPECT_EQ(*m1, FlatTreeTraversal::previousSkippingChildren(*m2)); |
| 286 | 286 |
| 287 // Distribute node to node in shadow tree | 287 // Distribute node to node in shadow tree |
| (...skipping 26 matching lines...) Expand all Loading... |
| 314 "</div>" | 314 "</div>" |
| 315 "<div id='m2'></div>"; | 315 "<div id='m2'></div>"; |
| 316 const char* shadowHTML = | 316 const char* shadowHTML = |
| 317 "<content select='#m11'></content>" | 317 "<content select='#m11'></content>" |
| 318 "<a id='s11'>s11</a>" | 318 "<a id='s11'>s11</a>" |
| 319 "<a id='s12'>" | 319 "<a id='s12'>" |
| 320 "<content select='#m10'></content>" | 320 "<content select='#m10'></content>" |
| 321 "</a>"; | 321 "</a>"; |
| 322 setupSampleHTML(mainHTML, shadowHTML, 1); | 322 setupSampleHTML(mainHTML, shadowHTML, 1); |
| 323 | 323 |
| 324 RefPtrWillBeRawPtr<Element> body = document().body(); | 324 RawPtr<Element> body = document().body(); |
| 325 RefPtrWillBeRawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPT
ION); | 325 RawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION); |
| 326 RefPtrWillBeRawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPT
ION); | 326 RawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION); |
| 327 RefPtrWillBeRawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPT
ION); | 327 RawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION); |
| 328 | 328 |
| 329 RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCE
PTION); | 329 RawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION); |
| 330 | 330 |
| 331 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot(); | 331 RawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot(); |
| 332 RefPtrWillBeRawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_N
O_EXCEPTION); | 332 RawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION)
; |
| 333 RefPtrWillBeRawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_N
O_EXCEPTION); | 333 RawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION)
; |
| 334 | 334 |
| 335 EXPECT_EQ(m0->firstChild(), FlatTreeTraversal::lastWithin(*m0)); | 335 EXPECT_EQ(m0->firstChild(), FlatTreeTraversal::lastWithin(*m0)); |
| 336 EXPECT_EQ(*m0->firstChild(), FlatTreeTraversal::lastWithinOrSelf(*m0)); | 336 EXPECT_EQ(*m0->firstChild(), FlatTreeTraversal::lastWithinOrSelf(*m0)); |
| 337 | 337 |
| 338 EXPECT_EQ(m10->firstChild(), FlatTreeTraversal::lastWithin(*m1)); | 338 EXPECT_EQ(m10->firstChild(), FlatTreeTraversal::lastWithin(*m1)); |
| 339 EXPECT_EQ(*m10->firstChild(), FlatTreeTraversal::lastWithinOrSelf(*m1)); | 339 EXPECT_EQ(*m10->firstChild(), FlatTreeTraversal::lastWithinOrSelf(*m1)); |
| 340 | 340 |
| 341 EXPECT_EQ(nullptr, FlatTreeTraversal::lastWithin(*m2)); | 341 EXPECT_EQ(nullptr, FlatTreeTraversal::lastWithin(*m2)); |
| 342 EXPECT_EQ(*m2, FlatTreeTraversal::lastWithinOrSelf(*m2)); | 342 EXPECT_EQ(*m2, FlatTreeTraversal::lastWithinOrSelf(*m2)); |
| 343 | 343 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 359 "<div id='m2'>m2</div>"; | 359 "<div id='m2'>m2</div>"; |
| 360 const char* shadowHTML = | 360 const char* shadowHTML = |
| 361 "<content select='#m11'></content>" | 361 "<content select='#m11'></content>" |
| 362 "<a id='s11'>s11</a>" | 362 "<a id='s11'>s11</a>" |
| 363 "<a id='s12'>" | 363 "<a id='s12'>" |
| 364 "<b id='s120'>s120</b>" | 364 "<b id='s120'>s120</b>" |
| 365 "<content select='#m10'></content>" | 365 "<content select='#m10'></content>" |
| 366 "</a>"; | 366 "</a>"; |
| 367 setupSampleHTML(mainHTML, shadowHTML, 1); | 367 setupSampleHTML(mainHTML, shadowHTML, 1); |
| 368 | 368 |
| 369 RefPtrWillBeRawPtr<Element> body = document().body(); | 369 RawPtr<Element> body = document().body(); |
| 370 RefPtrWillBeRawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPT
ION); | 370 RawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION); |
| 371 RefPtrWillBeRawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPT
ION); | 371 RawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION); |
| 372 RefPtrWillBeRawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPT
ION); | 372 RawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION); |
| 373 | 373 |
| 374 RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCE
PTION); | 374 RawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION); |
| 375 RefPtrWillBeRawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCE
PTION); | 375 RawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION); |
| 376 | 376 |
| 377 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot(); | 377 RawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot(); |
| 378 RefPtrWillBeRawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_N
O_EXCEPTION); | 378 RawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION)
; |
| 379 RefPtrWillBeRawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_N
O_EXCEPTION); | 379 RawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION)
; |
| 380 RefPtrWillBeRawPtr<Element> s120 = shadowRoot->querySelector("#s120", ASSERT
_NO_EXCEPTION); | 380 RawPtr<Element> s120 = shadowRoot->querySelector("#s120", ASSERT_NO_EXCEPTIO
N); |
| 381 | 381 |
| 382 EXPECT_EQ(*m0->firstChild(), FlatTreeTraversal::previousPostOrder(*m0)); | 382 EXPECT_EQ(*m0->firstChild(), FlatTreeTraversal::previousPostOrder(*m0)); |
| 383 EXPECT_EQ(*s12, FlatTreeTraversal::previousPostOrder(*m1)); | 383 EXPECT_EQ(*s12, FlatTreeTraversal::previousPostOrder(*m1)); |
| 384 EXPECT_EQ(*m10->firstChild(), FlatTreeTraversal::previousPostOrder(*m10)); | 384 EXPECT_EQ(*m10->firstChild(), FlatTreeTraversal::previousPostOrder(*m10)); |
| 385 EXPECT_EQ(*s120, FlatTreeTraversal::previousPostOrder(*m10->firstChild())); | 385 EXPECT_EQ(*s120, FlatTreeTraversal::previousPostOrder(*m10->firstChild())); |
| 386 EXPECT_EQ(*s120, FlatTreeTraversal::previousPostOrder(*m10->firstChild(), s1
2.get())); | 386 EXPECT_EQ(*s120, FlatTreeTraversal::previousPostOrder(*m10->firstChild(), s1
2.get())); |
| 387 EXPECT_EQ(*m11->firstChild(), FlatTreeTraversal::previousPostOrder(*m11)); | 387 EXPECT_EQ(*m11->firstChild(), FlatTreeTraversal::previousPostOrder(*m11)); |
| 388 EXPECT_EQ(*m0, FlatTreeTraversal::previousPostOrder(*m11->firstChild())); | 388 EXPECT_EQ(*m0, FlatTreeTraversal::previousPostOrder(*m11->firstChild())); |
| 389 EXPECT_EQ(nullptr, FlatTreeTraversal::previousPostOrder(*m11->firstChild(),
m11.get())); | 389 EXPECT_EQ(nullptr, FlatTreeTraversal::previousPostOrder(*m11->firstChild(),
m11.get())); |
| 390 EXPECT_EQ(*m2->firstChild(), FlatTreeTraversal::previousPostOrder(*m2)); | 390 EXPECT_EQ(*m2->firstChild(), FlatTreeTraversal::previousPostOrder(*m2)); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 402 "<div id='m0'>m0</div>" | 402 "<div id='m0'>m0</div>" |
| 403 "<div id='m1'>" | 403 "<div id='m1'>" |
| 404 "<span id='m10'>m10</span>" | 404 "<span id='m10'>m10</span>" |
| 405 "<span id='m11'>m11</span>" | 405 "<span id='m11'>m11</span>" |
| 406 "</div>" | 406 "</div>" |
| 407 "<div id='m2'>m2</div>"; | 407 "<div id='m2'>m2</div>"; |
| 408 const char* shadowHTML = | 408 const char* shadowHTML = |
| 409 "<content select='#m11'></content>"; | 409 "<content select='#m11'></content>"; |
| 410 setupSampleHTML(mainHTML, shadowHTML, 1); | 410 setupSampleHTML(mainHTML, shadowHTML, 1); |
| 411 | 411 |
| 412 RefPtrWillBeRawPtr<Element> body = document().body(); | 412 RawPtr<Element> body = document().body(); |
| 413 RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCE
PTION); | 413 RawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION); |
| 414 | 414 |
| 415 EXPECT_EQ(nullptr, FlatTreeTraversal::nextSibling(*m10)); | 415 EXPECT_EQ(nullptr, FlatTreeTraversal::nextSibling(*m10)); |
| 416 EXPECT_EQ(nullptr, FlatTreeTraversal::previousSibling(*m10)); | 416 EXPECT_EQ(nullptr, FlatTreeTraversal::previousSibling(*m10)); |
| 417 } | 417 } |
| 418 | 418 |
| 419 TEST_F(FlatTreeTraversalTest, redistribution) | 419 TEST_F(FlatTreeTraversalTest, redistribution) |
| 420 { | 420 { |
| 421 const char* mainHTML = | 421 const char* mainHTML = |
| 422 "<div id='m0'>m0</div>" | 422 "<div id='m0'>m0</div>" |
| 423 "<div id='m1'>" | 423 "<div id='m1'>" |
| 424 "<span id='m10'>m10</span>" | 424 "<span id='m10'>m10</span>" |
| 425 "<span id='m11'>m11</span>" | 425 "<span id='m11'>m11</span>" |
| 426 "</div>" | 426 "</div>" |
| 427 "<div id='m2'>m2</div>"; | 427 "<div id='m2'>m2</div>"; |
| 428 const char* shadowHTML1 = | 428 const char* shadowHTML1 = |
| 429 "<div id='s1'>" | 429 "<div id='s1'>" |
| 430 "<content></content>" | 430 "<content></content>" |
| 431 "</div>"; | 431 "</div>"; |
| 432 | 432 |
| 433 setupSampleHTML(mainHTML, shadowHTML1, 1); | 433 setupSampleHTML(mainHTML, shadowHTML1, 1); |
| 434 | 434 |
| 435 const char* shadowHTML2 = | 435 const char* shadowHTML2 = |
| 436 "<div id='s2'>" | 436 "<div id='s2'>" |
| 437 "<content select='#m10'></content>" | 437 "<content select='#m10'></content>" |
| 438 "<span id='s21'>s21</span>" | 438 "<span id='s21'>s21</span>" |
| 439 "</div>"; | 439 "</div>"; |
| 440 | 440 |
| 441 RefPtrWillBeRawPtr<Element> body = document().body(); | 441 RawPtr<Element> body = document().body(); |
| 442 RefPtrWillBeRawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPT
ION); | 442 RawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION); |
| 443 RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCE
PTION); | 443 RawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION); |
| 444 | 444 |
| 445 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot1 = m1->openShadowRoot(); | 445 RawPtr<ShadowRoot> shadowRoot1 = m1->openShadowRoot(); |
| 446 RefPtrWillBeRawPtr<Element> s1 = shadowRoot1->querySelector("#s1", ASSERT_NO
_EXCEPTION); | 446 RawPtr<Element> s1 = shadowRoot1->querySelector("#s1", ASSERT_NO_EXCEPTION); |
| 447 | 447 |
| 448 attachV0ShadowRoot(*s1, shadowHTML2); | 448 attachV0ShadowRoot(*s1, shadowHTML2); |
| 449 | 449 |
| 450 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot2 = s1->openShadowRoot(); | 450 RawPtr<ShadowRoot> shadowRoot2 = s1->openShadowRoot(); |
| 451 RefPtrWillBeRawPtr<Element> s21 = shadowRoot2->querySelector("#s21", ASSERT_
NO_EXCEPTION); | 451 RawPtr<Element> s21 = shadowRoot2->querySelector("#s21", ASSERT_NO_EXCEPTION
); |
| 452 | 452 |
| 453 EXPECT_EQ(s21.get(), FlatTreeTraversal::nextSibling(*m10)); | 453 EXPECT_EQ(s21.get(), FlatTreeTraversal::nextSibling(*m10)); |
| 454 EXPECT_EQ(m10.get(), FlatTreeTraversal::previousSibling(*s21)); | 454 EXPECT_EQ(m10.get(), FlatTreeTraversal::previousSibling(*s21)); |
| 455 | 455 |
| 456 // FlatTreeTraversal::traverseSiblings does not work for a node which is not
in a document flat tree. | 456 // FlatTreeTraversal::traverseSiblings does not work for a node which is not
in a document flat tree. |
| 457 // e.g. The following test fails. The result of FlatTreeTraversal::previousS
ibling(*m11)) will be #m10, instead of nullptr. | 457 // e.g. The following test fails. The result of FlatTreeTraversal::previousS
ibling(*m11)) will be #m10, instead of nullptr. |
| 458 // RefPtrWillBeRawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_E
XCEPTION); | 458 // RawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION); |
| 459 // EXPECT_EQ(nullptr, FlatTreeTraversal::previousSibling(*m11)); | 459 // EXPECT_EQ(nullptr, FlatTreeTraversal::previousSibling(*m11)); |
| 460 } | 460 } |
| 461 | 461 |
| 462 TEST_F(FlatTreeTraversalTest, v1Simple) | 462 TEST_F(FlatTreeTraversalTest, v1Simple) |
| 463 { | 463 { |
| 464 const char* mainHTML = | 464 const char* mainHTML = |
| 465 "<div id='host'>" | 465 "<div id='host'>" |
| 466 "<div id='child1' slot='slot1'></div>" | 466 "<div id='child1' slot='slot1'></div>" |
| 467 "<div id='child2' slot='slot2'></div>" | 467 "<div id='child2' slot='slot2'></div>" |
| 468 "</div>"; | 468 "</div>"; |
| 469 const char* shadowHTML = | 469 const char* shadowHTML = |
| 470 "<div id='shadow-child1'></div>" | 470 "<div id='shadow-child1'></div>" |
| 471 "<slot name='slot1'></slot>" | 471 "<slot name='slot1'></slot>" |
| 472 "<slot name='slot2'></slot>" | 472 "<slot name='slot2'></slot>" |
| 473 "<div id='shadow-child2'></div>"; | 473 "<div id='shadow-child2'></div>"; |
| 474 | 474 |
| 475 setupDocumentTree(mainHTML); | 475 setupDocumentTree(mainHTML); |
| 476 RefPtrWillBeRawPtr<Element> body = document().body(); | 476 RawPtr<Element> body = document().body(); |
| 477 RefPtrWillBeRawPtr<Element> host = body->querySelector("#host", ASSERT_NO_EX
CEPTION); | 477 RawPtr<Element> host = body->querySelector("#host", ASSERT_NO_EXCEPTION); |
| 478 RefPtrWillBeRawPtr<Element> child1 = body->querySelector("#child1", ASSERT_N
O_EXCEPTION); | 478 RawPtr<Element> child1 = body->querySelector("#child1", ASSERT_NO_EXCEPTION)
; |
| 479 RefPtrWillBeRawPtr<Element> child2 = body->querySelector("#child2", ASSERT_N
O_EXCEPTION); | 479 RawPtr<Element> child2 = body->querySelector("#child2", ASSERT_NO_EXCEPTION)
; |
| 480 | 480 |
| 481 attachOpenShadowRoot(*host, shadowHTML); | 481 attachOpenShadowRoot(*host, shadowHTML); |
| 482 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = host->openShadowRoot(); | 482 RawPtr<ShadowRoot> shadowRoot = host->openShadowRoot(); |
| 483 RefPtrWillBeRawPtr<Element> slot1 = shadowRoot->querySelector("[name=slot1]"
, ASSERT_NO_EXCEPTION); | 483 RawPtr<Element> slot1 = shadowRoot->querySelector("[name=slot1]", ASSERT_NO_
EXCEPTION); |
| 484 RefPtrWillBeRawPtr<Element> slot2 = shadowRoot->querySelector("[name=slot2]"
, ASSERT_NO_EXCEPTION); | 484 RawPtr<Element> slot2 = shadowRoot->querySelector("[name=slot2]", ASSERT_NO_
EXCEPTION); |
| 485 RefPtrWillBeRawPtr<Element> shadowChild1 = shadowRoot->querySelector("#shado
w-child1", ASSERT_NO_EXCEPTION); | 485 RawPtr<Element> shadowChild1 = shadowRoot->querySelector("#shadow-child1", A
SSERT_NO_EXCEPTION); |
| 486 RefPtrWillBeRawPtr<Element> shadowChild2 = shadowRoot->querySelector("#shado
w-child2", ASSERT_NO_EXCEPTION); | 486 RawPtr<Element> shadowChild2 = shadowRoot->querySelector("#shadow-child2", A
SSERT_NO_EXCEPTION); |
| 487 | 487 |
| 488 EXPECT_TRUE(slot1); | 488 EXPECT_TRUE(slot1); |
| 489 EXPECT_TRUE(slot2); | 489 EXPECT_TRUE(slot2); |
| 490 EXPECT_EQ(shadowChild1.get(), FlatTreeTraversal::firstChild(*host)); | 490 EXPECT_EQ(shadowChild1.get(), FlatTreeTraversal::firstChild(*host)); |
| 491 EXPECT_EQ(child1.get(), FlatTreeTraversal::nextSibling(*shadowChild1)); | 491 EXPECT_EQ(child1.get(), FlatTreeTraversal::nextSibling(*shadowChild1)); |
| 492 EXPECT_EQ(child2.get(), FlatTreeTraversal::nextSibling(*child1)); | 492 EXPECT_EQ(child2.get(), FlatTreeTraversal::nextSibling(*child1)); |
| 493 EXPECT_EQ(shadowChild2.get(), FlatTreeTraversal::nextSibling(*child2)); | 493 EXPECT_EQ(shadowChild2.get(), FlatTreeTraversal::nextSibling(*child2)); |
| 494 } | 494 } |
| 495 | 495 |
| 496 TEST_F(FlatTreeTraversalTest, v1Redistribution) | 496 TEST_F(FlatTreeTraversalTest, v1Redistribution) |
| (...skipping 16 matching lines...) Expand all Loading... |
| 513 "<div id='d1-4' slot='d1-1-s1'></div>" | 513 "<div id='d1-4' slot='d1-1-s1'></div>" |
| 514 "</div>"; | 514 "</div>"; |
| 515 const char* shadowHTML2 = | 515 const char* shadowHTML2 = |
| 516 "<div id='d1-1-1'></div>" | 516 "<div id='d1-1-1'></div>" |
| 517 "<slot name='d1-1-s1'></slot>" | 517 "<slot name='d1-1-s1'></slot>" |
| 518 "<slot name='d1-1-s2'></slot>" | 518 "<slot name='d1-1-s2'></slot>" |
| 519 "<div id='d1-1-2'></div>"; | 519 "<div id='d1-1-2'></div>"; |
| 520 | 520 |
| 521 setupDocumentTree(mainHTML); | 521 setupDocumentTree(mainHTML); |
| 522 | 522 |
| 523 RefPtrWillBeRawPtr<Element> body = document().body(); | 523 RawPtr<Element> body = document().body(); |
| 524 RefPtrWillBeRawPtr<Element> d1 = body->querySelector("#d1", ASSERT_NO_EXCEPT
ION); | 524 RawPtr<Element> d1 = body->querySelector("#d1", ASSERT_NO_EXCEPTION); |
| 525 RefPtrWillBeRawPtr<Element> d2 = body->querySelector("#d2", ASSERT_NO_EXCEPT
ION); | 525 RawPtr<Element> d2 = body->querySelector("#d2", ASSERT_NO_EXCEPTION); |
| 526 RefPtrWillBeRawPtr<Element> d3 = body->querySelector("#d3", ASSERT_NO_EXCEPT
ION); | 526 RawPtr<Element> d3 = body->querySelector("#d3", ASSERT_NO_EXCEPTION); |
| 527 RefPtrWillBeRawPtr<Element> d4 = body->querySelector("#d4", ASSERT_NO_EXCEPT
ION); | 527 RawPtr<Element> d4 = body->querySelector("#d4", ASSERT_NO_EXCEPTION); |
| 528 RefPtrWillBeRawPtr<Element> d5 = body->querySelector("#d5", ASSERT_NO_EXCEPT
ION); | 528 RawPtr<Element> d5 = body->querySelector("#d5", ASSERT_NO_EXCEPTION); |
| 529 RefPtrWillBeRawPtr<Element> d6 = body->querySelector("#d6", ASSERT_NO_EXCEPT
ION); | 529 RawPtr<Element> d6 = body->querySelector("#d6", ASSERT_NO_EXCEPTION); |
| 530 | 530 |
| 531 attachOpenShadowRoot(*d1, shadowHTML1); | 531 attachOpenShadowRoot(*d1, shadowHTML1); |
| 532 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot1 = d1->openShadowRoot(); | 532 RawPtr<ShadowRoot> shadowRoot1 = d1->openShadowRoot(); |
| 533 RefPtrWillBeRawPtr<Element> d11 = shadowRoot1->querySelector("#d1-1", ASSERT
_NO_EXCEPTION); | 533 RawPtr<Element> d11 = shadowRoot1->querySelector("#d1-1", ASSERT_NO_EXCEPTIO
N); |
| 534 RefPtrWillBeRawPtr<Element> d12 = shadowRoot1->querySelector("#d1-2", ASSERT
_NO_EXCEPTION); | 534 RawPtr<Element> d12 = shadowRoot1->querySelector("#d1-2", ASSERT_NO_EXCEPTIO
N); |
| 535 RefPtrWillBeRawPtr<Element> d13 = shadowRoot1->querySelector("#d1-3", ASSERT
_NO_EXCEPTION); | 535 RawPtr<Element> d13 = shadowRoot1->querySelector("#d1-3", ASSERT_NO_EXCEPTIO
N); |
| 536 RefPtrWillBeRawPtr<Element> d14 = shadowRoot1->querySelector("#d1-4", ASSERT
_NO_EXCEPTION); | 536 RawPtr<Element> d14 = shadowRoot1->querySelector("#d1-4", ASSERT_NO_EXCEPTIO
N); |
| 537 RefPtrWillBeRawPtr<Element> d1s0 = shadowRoot1->querySelector("#d1-s0", ASSE
RT_NO_EXCEPTION); | 537 RawPtr<Element> d1s0 = shadowRoot1->querySelector("#d1-s0", ASSERT_NO_EXCEPT
ION); |
| 538 RefPtrWillBeRawPtr<Element> d1s1 = shadowRoot1->querySelector("[name=d1-s1]"
, ASSERT_NO_EXCEPTION); | 538 RawPtr<Element> d1s1 = shadowRoot1->querySelector("[name=d1-s1]", ASSERT_NO_
EXCEPTION); |
| 539 RefPtrWillBeRawPtr<Element> d1s2 = shadowRoot1->querySelector("[name=d1-s2]"
, ASSERT_NO_EXCEPTION); | 539 RawPtr<Element> d1s2 = shadowRoot1->querySelector("[name=d1-s2]", ASSERT_NO_
EXCEPTION); |
| 540 | 540 |
| 541 attachOpenShadowRoot(*d11, shadowHTML2); | 541 attachOpenShadowRoot(*d11, shadowHTML2); |
| 542 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot2 = d11->openShadowRoot(); | 542 RawPtr<ShadowRoot> shadowRoot2 = d11->openShadowRoot(); |
| 543 RefPtrWillBeRawPtr<Element> d111 = shadowRoot2->querySelector("#d1-1-1", ASS
ERT_NO_EXCEPTION); | 543 RawPtr<Element> d111 = shadowRoot2->querySelector("#d1-1-1", ASSERT_NO_EXCEP
TION); |
| 544 RefPtrWillBeRawPtr<Element> d112 = shadowRoot2->querySelector("#d1-1-2", ASS
ERT_NO_EXCEPTION); | 544 RawPtr<Element> d112 = shadowRoot2->querySelector("#d1-1-2", ASSERT_NO_EXCEP
TION); |
| 545 RefPtrWillBeRawPtr<Element> d11s1 = shadowRoot2->querySelector("[name=d1-1-s
1]", ASSERT_NO_EXCEPTION); | 545 RawPtr<Element> d11s1 = shadowRoot2->querySelector("[name=d1-1-s1]", ASSERT_
NO_EXCEPTION); |
| 546 RefPtrWillBeRawPtr<Element> d11s2 = shadowRoot2->querySelector("[name=d1-1-s
2]", ASSERT_NO_EXCEPTION); | 546 RawPtr<Element> d11s2 = shadowRoot2->querySelector("[name=d1-1-s2]", ASSERT_
NO_EXCEPTION); |
| 547 | 547 |
| 548 EXPECT_TRUE(d5); | 548 EXPECT_TRUE(d5); |
| 549 EXPECT_TRUE(d12); | 549 EXPECT_TRUE(d12); |
| 550 EXPECT_TRUE(d13); | 550 EXPECT_TRUE(d13); |
| 551 EXPECT_TRUE(d1s0); | 551 EXPECT_TRUE(d1s0); |
| 552 EXPECT_TRUE(d1s1); | 552 EXPECT_TRUE(d1s1); |
| 553 EXPECT_TRUE(d1s2); | 553 EXPECT_TRUE(d1s2); |
| 554 EXPECT_TRUE(d11s1); | 554 EXPECT_TRUE(d11s1); |
| 555 EXPECT_TRUE(d11s2); | 555 EXPECT_TRUE(d11s2); |
| 556 EXPECT_EQ(d11.get(), FlatTreeTraversal::next(*d1)); | 556 EXPECT_EQ(d11.get(), FlatTreeTraversal::next(*d1)); |
| 557 EXPECT_EQ(d111.get(), FlatTreeTraversal::next(*d11)); | 557 EXPECT_EQ(d111.get(), FlatTreeTraversal::next(*d11)); |
| 558 EXPECT_EQ(d2.get(), FlatTreeTraversal::next(*d111)); | 558 EXPECT_EQ(d2.get(), FlatTreeTraversal::next(*d111)); |
| 559 EXPECT_EQ(d14.get(), FlatTreeTraversal::next(*d2)); | 559 EXPECT_EQ(d14.get(), FlatTreeTraversal::next(*d2)); |
| 560 EXPECT_EQ(d112.get(), FlatTreeTraversal::next(*d14)); | 560 EXPECT_EQ(d112.get(), FlatTreeTraversal::next(*d14)); |
| 561 EXPECT_EQ(d6.get(), FlatTreeTraversal::next(*d112)); | 561 EXPECT_EQ(d6.get(), FlatTreeTraversal::next(*d112)); |
| 562 | 562 |
| 563 EXPECT_EQ(d112.get(), FlatTreeTraversal::previous(*d6)); | 563 EXPECT_EQ(d112.get(), FlatTreeTraversal::previous(*d6)); |
| 564 | 564 |
| 565 EXPECT_EQ(d11.get(), FlatTreeTraversal::parent(*d111)); | 565 EXPECT_EQ(d11.get(), FlatTreeTraversal::parent(*d111)); |
| 566 EXPECT_EQ(d11.get(), FlatTreeTraversal::parent(*d112)); | 566 EXPECT_EQ(d11.get(), FlatTreeTraversal::parent(*d112)); |
| 567 EXPECT_EQ(d11.get(), FlatTreeTraversal::parent(*d2)); | 567 EXPECT_EQ(d11.get(), FlatTreeTraversal::parent(*d2)); |
| 568 EXPECT_EQ(d11.get(), FlatTreeTraversal::parent(*d14)); | 568 EXPECT_EQ(d11.get(), FlatTreeTraversal::parent(*d14)); |
| 569 EXPECT_EQ(nullptr, FlatTreeTraversal::parent(*d3)); | 569 EXPECT_EQ(nullptr, FlatTreeTraversal::parent(*d3)); |
| 570 EXPECT_EQ(nullptr, FlatTreeTraversal::parent(*d4)); | 570 EXPECT_EQ(nullptr, FlatTreeTraversal::parent(*d4)); |
| 571 } | 571 } |
| 572 | 572 |
| 573 } // namespace blink | 573 } // namespace blink |
| OLD | NEW |