Index: Source/web/tests/WebFrameTest.cpp |
diff --git a/Source/web/tests/WebFrameTest.cpp b/Source/web/tests/WebFrameTest.cpp |
index d39bc920fd639a006c07ef4aee8d6e911ac4ea86..cfc5ff32446fd87aec4be11cb682b4e30b829fba 100644 |
--- a/Source/web/tests/WebFrameTest.cpp |
+++ b/Source/web/tests/WebFrameTest.cpp |
@@ -5243,4 +5243,33 @@ TEST_F(WebFrameTest, FrameViewSetFrameRect) |
EXPECT_EQ_RECT(WebCore::IntRect(100, 100, 200, 200), frameView->frameRect()); |
} |
+TEST_F(WebFrameTest, RenderBlockPercentHeightDescendants) |
+{ |
+ registerMockedHttpURLLoad("percent-height-descendants.html"); |
+ FrameTestHelpers::WebViewHelper webViewHelper; |
+ webViewHelper.initializeAndLoad(m_baseURL + "percent-height-descendants.html"); |
+ |
+ WebView* webView = webViewHelper.webView(); |
+ webView->resize(WebSize(800, 800)); |
+ webView->layout(); |
+ |
+ Document* document = toWebFrameImpl(webView->mainFrame())->frame()->document(); |
+ WebCore::RenderBlock* container = WebCore::toRenderBlock(document->getElementById("container")->renderer()); |
+ WebCore::RenderBox* percentHeightInAnonymous = WebCore::toRenderBox(document->getElementById("percent-height-in-anonymous")->renderer()); |
+ WebCore::RenderBox* percentHeightDirectChild = WebCore::toRenderBox(document->getElementById("percent-height-direct-child")->renderer()); |
+ |
+ EXPECT_TRUE(WebCore::RenderBlock::hasPercentHeightDescendant(percentHeightInAnonymous)); |
+ EXPECT_TRUE(WebCore::RenderBlock::hasPercentHeightDescendant(percentHeightDirectChild)); |
+ |
+ ASSERT_TRUE(container->percentHeightDescendants()); |
+ ASSERT_TRUE(container->hasPercentHeightDescendants()); |
+ EXPECT_EQ(2U, container->percentHeightDescendants()->size()); |
+ EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightInAnonymous)); |
+ EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightDirectChild)); |
+ |
+ WebCore::RenderBlock* anonymousBlock = percentHeightInAnonymous->containingBlock(); |
+ EXPECT_TRUE(anonymousBlock->isAnonymous()); |
+ EXPECT_FALSE(anonymousBlock->hasPercentHeightDescendants()); |
+} |
+ |
} // namespace |