Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(452)

Unified Diff: Source/core/dom/shadow/ComposedTreeTraversalTest.cpp

Issue 1030153002: Add ComposedTreeTraversal::lastWithin/lastWithinOrSelf (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 2015-03-26T12:55 hayato's review: Add assertPostcondition, use traverseLastChild Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/dom/shadow/ComposedTreeTraversal.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/shadow/ComposedTreeTraversalTest.cpp
diff --git a/Source/core/dom/shadow/ComposedTreeTraversalTest.cpp b/Source/core/dom/shadow/ComposedTreeTraversalTest.cpp
index 1a114ab95437669c9d7dbe01133dd67aacad009b..c7c9b9cc420bf9bec66b6c8fec3695d6a38d80fe 100644
--- a/Source/core/dom/shadow/ComposedTreeTraversalTest.cpp
+++ b/Source/core/dom/shadow/ComposedTreeTraversalTest.cpp
@@ -237,7 +237,7 @@ TEST_F(ComposedTreeTraversalTest, nextSkippingChildren)
"<a id='s11'>s11</a>"
"<a id='s12'>"
"<b id='s120'>s120</b>"
- "<content select='#m10'></content></a>"
+ "<content select='#m10'></content>"
"</a>";
setupSampleHTML(mainHTML, shadowHTML, 1);
@@ -278,4 +278,53 @@ TEST_F(ComposedTreeTraversalTest, nextSkippingChildren)
EXPECT_EQ(*m1, ComposedTreeTraversal::previousSkippingChildren(*m2));
}
+// Test case for
+// - lastWithin
+// - lastWithinOrSelf
+TEST_F(ComposedTreeTraversalTest, lastWithin)
+{
+ const char* mainHTML =
+ "<div id='m0'>m0</div>"
+ "<div id='m1'>"
+ "<span id='m10'>m10</span>"
+ "<span id='m11'>m11</span>"
+ "<span id='m12'>m12</span>" // #m12 is not distributed.
+ "</div>"
+ "<div id='m2'></div>";
+ const char* shadowHTML =
+ "<content select='#m11'></content>"
+ "<a id='s11'>s11</a>"
+ "<a id='s12'>"
+ "<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->shadowRoot();
+ RefPtrWillBeRawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION);
+ RefPtrWillBeRawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION);
+
+ EXPECT_EQ(m0->firstChild(), ComposedTreeTraversal::lastWithin(*m0));
+ EXPECT_EQ(*m0->firstChild(), ComposedTreeTraversal::lastWithinOrSelf(*m0));
+
+ EXPECT_EQ(m10->firstChild(), ComposedTreeTraversal::lastWithin(*m1));
+ EXPECT_EQ(*m10->firstChild(), ComposedTreeTraversal::lastWithinOrSelf(*m1));
+
+ EXPECT_EQ(nullptr, ComposedTreeTraversal::lastWithin(*m2));
+ EXPECT_EQ(*m2, ComposedTreeTraversal::lastWithinOrSelf(*m2));
+
+ EXPECT_EQ(s11->firstChild(), ComposedTreeTraversal::lastWithin(*s11));
+ EXPECT_EQ(*s11->firstChild(), ComposedTreeTraversal::lastWithinOrSelf(*s11));
+
+ EXPECT_EQ(m10->firstChild(), ComposedTreeTraversal::lastWithin(*s12));
+ EXPECT_EQ(*m10->firstChild(), ComposedTreeTraversal::lastWithinOrSelf(*s12));
+}
+
} // namespace
« no previous file with comments | « Source/core/dom/shadow/ComposedTreeTraversal.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698