Index: third_party/WebKit/Source/core/layout/LayoutObjectTest.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutObjectTest.cpp b/third_party/WebKit/Source/core/layout/LayoutObjectTest.cpp |
index ca872f5b06e350207064bb285ba10c41eae0c819..e870cd1b6ef130a4598d27a3e3643d4db96f7f0c 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutObjectTest.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutObjectTest.cpp |
@@ -125,6 +125,59 @@ TEST_F(LayoutObjectTest, PaintingLayerOfOverflowClipLayerUnderColumnSpanAll) { |
EXPECT_EQ(columns->layer(), overflowClipObject->paintingLayer()); |
} |
+TEST_F(LayoutObjectTest, FloatUnderBlock) { |
+ setBodyInnerHTML( |
+ "<div id='layered-div' style='position: absolute'>" |
+ " <div id='container'>" |
+ " <div id='floating' style='float: left'>FLOAT</div>" |
+ " </div>" |
+ "</div>"); |
+ |
+ LayoutBoxModelObject* layeredDiv = |
+ toLayoutBoxModelObject(getLayoutObjectByElementId("layered-div")); |
+ LayoutBoxModelObject* container = |
+ toLayoutBoxModelObject(getLayoutObjectByElementId("container")); |
+ LayoutObject* floating = getLayoutObjectByElementId("floating"); |
+ |
+ EXPECT_EQ(layeredDiv->layer(), layeredDiv->paintingLayer()); |
+ EXPECT_EQ(layeredDiv->layer(), floating->paintingLayer()); |
+ EXPECT_EQ(container, floating->container()); |
+ EXPECT_EQ(container, floating->containingBlock()); |
+} |
+ |
+TEST_F(LayoutObjectTest, FloatUnderInline) { |
+ setBodyInnerHTML( |
+ "<div id='layered-div' style='position: absolute'>" |
+ " <div id='container'>" |
+ " <span id='layered-span' style='position: relative'>" |
+ " <div id='floating' style='float: left'>FLOAT</div>" |
+ " </span>" |
+ " </div>" |
+ "</div>"); |
+ |
+ LayoutBoxModelObject* layeredDiv = |
+ toLayoutBoxModelObject(getLayoutObjectByElementId("layered-div")); |
+ LayoutBoxModelObject* container = |
+ toLayoutBoxModelObject(getLayoutObjectByElementId("container")); |
+ LayoutBoxModelObject* layeredSpan = |
+ toLayoutBoxModelObject(getLayoutObjectByElementId("layered-span")); |
+ LayoutObject* floating = getLayoutObjectByElementId("floating"); |
+ |
+ EXPECT_EQ(layeredDiv->layer(), layeredDiv->paintingLayer()); |
+ EXPECT_EQ(layeredSpan->layer(), layeredSpan->paintingLayer()); |
+ EXPECT_EQ(layeredDiv->layer(), floating->paintingLayer()); |
+ EXPECT_EQ(container, floating->container()); |
+ EXPECT_EQ(container, floating->containingBlock()); |
+ |
+ bool ancestorSkipped = false; |
+ EXPECT_EQ(container, floating->container(layeredSpan, &ancestorSkipped)); |
+ EXPECT_TRUE(ancestorSkipped); |
+ |
+ ancestorSkipped = false; |
+ EXPECT_EQ(container, floating->container(container, &ancestorSkipped)); |
+ EXPECT_FALSE(ancestorSkipped); |
+} |
+ |
TEST_F(LayoutObjectTest, MutableForPaintingClearPaintFlags) { |
LayoutObject* object = document().body()->layoutObject(); |
object->setShouldDoFullPaintInvalidation(); |