Index: Source/core/dom/shadow/ComposedTreeTraversalTest.cpp |
diff --git a/Source/core/dom/shadow/ComposedTreeTraversalTest.cpp b/Source/core/dom/shadow/ComposedTreeTraversalTest.cpp |
index 346e39dafafe5115c81caefac94ab3efe2c098f6..f653c7e3856362360150e652e0e1c11edd498012 100644 |
--- a/Source/core/dom/shadow/ComposedTreeTraversalTest.cpp |
+++ b/Source/core/dom/shadow/ComposedTreeTraversalTest.cpp |
@@ -324,4 +324,52 @@ TEST_F(ComposedTreeTraversalTest, lastWithin) |
EXPECT_EQ(*m10->firstChild(), ComposedTreeTraversal::lastWithinOrSelf(*s12)); |
} |
+TEST_F(ComposedTreeTraversalTest, previousPostOrder) |
+{ |
+ const char* mainHTML = |
+ "<div id='m0'>m0</div>" |
+ "<div id='m1'>" |
+ "<span id='m10'>m10</span>" |
+ "<span id='m11'>m11</span>" |
+ "</div>" |
+ "<div id='m2'>m2</div>"; |
+ const char* shadowHTML = |
+ "<content select='#m11'></content>" |
+ "<a id='s11'>s11</a>" |
+ "<a id='s12'>" |
+ "<b id='s120'>s120</b>" |
+ "<content select='#m10'></content>" |
+ "</a>"; |
+ setupSampleHTML(mainHTML, shadowHTML, 1); |
+ |
+ RefPtrWillBeRawPtr<Element> body = document().body(); |
+ RefPtrWillBeRawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION); |
+ RefPtrWillBeRawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION); |
+ RefPtrWillBeRawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION); |
+ |
+ RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION); |
+ RefPtrWillBeRawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION); |
+ |
+ RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot(); |
+ RefPtrWillBeRawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION); |
+ RefPtrWillBeRawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION); |
+ RefPtrWillBeRawPtr<Element> s120 = shadowRoot->querySelector("#s120", ASSERT_NO_EXCEPTION); |
+ |
+ EXPECT_EQ(*m0->firstChild(), ComposedTreeTraversal::previousPostOrder(*m0)); |
+ EXPECT_EQ(*s12, ComposedTreeTraversal::previousPostOrder(*m1)); |
+ EXPECT_EQ(*m10->firstChild(), ComposedTreeTraversal::previousPostOrder(*m10)); |
+ EXPECT_EQ(*s120, ComposedTreeTraversal::previousPostOrder(*m10->firstChild())); |
+ EXPECT_EQ(*s120, ComposedTreeTraversal::previousPostOrder(*m10->firstChild(), s12.get())); |
+ EXPECT_EQ(*m11->firstChild(), ComposedTreeTraversal::previousPostOrder(*m11)); |
+ EXPECT_EQ(*m0, ComposedTreeTraversal::previousPostOrder(*m11->firstChild())); |
+ EXPECT_EQ(nullptr, ComposedTreeTraversal::previousPostOrder(*m11->firstChild(), m11.get())); |
+ EXPECT_EQ(*m2->firstChild(), ComposedTreeTraversal::previousPostOrder(*m2)); |
+ |
+ EXPECT_EQ(*s11->firstChild(), ComposedTreeTraversal::previousPostOrder(*s11)); |
+ EXPECT_EQ(*m10, ComposedTreeTraversal::previousPostOrder(*s12)); |
+ EXPECT_EQ(*s120->firstChild(), ComposedTreeTraversal::previousPostOrder(*s120)); |
+ EXPECT_EQ(*s11, ComposedTreeTraversal::previousPostOrder(*s120->firstChild())); |
+ EXPECT_EQ(nullptr, ComposedTreeTraversal::previousPostOrder(*s120->firstChild(), s12.get())); |
+} |
+ |
} // namespace blink |