Chromium Code Reviews| Index: third_party/WebKit/Source/core/paint/PaintLayerTest.cpp |
| diff --git a/third_party/WebKit/Source/core/paint/PaintLayerTest.cpp b/third_party/WebKit/Source/core/paint/PaintLayerTest.cpp |
| index 3efb930a86ea17a6c9440608cd518bccf4f3e17d..614d16a3983407f40976e0103cc70a42f9ce0906 100644 |
| --- a/third_party/WebKit/Source/core/paint/PaintLayerTest.cpp |
| +++ b/third_party/WebKit/Source/core/paint/PaintLayerTest.cpp |
| @@ -550,8 +550,11 @@ TEST_P(PaintLayerTest, FloatLayerAndAbsoluteUnderInlineLayer) { |
| toLayoutBoxModelObject(getLayoutObjectByElementId("container"))->layer(); |
| EXPECT_EQ(span, floating->parent()); |
| + EXPECT_EQ(container, floating->containingLayer()); |
| EXPECT_EQ(span, absolute->parent()); |
| + EXPECT_EQ(span, absolute->containingLayer()); |
| EXPECT_EQ(container, span->parent()); |
| + EXPECT_EQ(container, span->containingLayer()); |
| EXPECT_EQ(LayoutPoint(83, 83), floating->location()); |
| EXPECT_EQ(LayoutPoint(50, 50), absolute->location()); |
| @@ -565,6 +568,75 @@ TEST_P(PaintLayerTest, FloatLayerAndAbsoluteUnderInlineLayer) { |
| absolute->visualOffsetFromAncestor(container)); |
| } |
| +TEST_P(PaintLayerTest, FloatLayerUnderInlineLayerScrolled) { |
| + setBodyInnerHTML( |
| + "<div id='container' style='overflow: scroll; width: 50px; height: 50px'>" |
| + " <span id='span' style='position: relative; top: 100px; left: 100px'>" |
| + " <div id='floating'" |
| + " style='float: left; position: relative; top: 50px; left: 50px'>" |
| + " </div>" |
| + " </span>" |
| + " <div style='height: 1000px'></div>" |
| + "</div>"); |
| + |
| + PaintLayer* floating = |
| + toLayoutBoxModelObject(getLayoutObjectByElementId("floating"))->layer(); |
| + PaintLayer* span = |
| + toLayoutBoxModelObject(getLayoutObjectByElementId("span"))->layer(); |
| + PaintLayer* container = |
| + toLayoutBoxModelObject(getLayoutObjectByElementId("container"))->layer(); |
| + container->getScrollableArea()->setScrollOffset(ScrollOffset(0, 400), |
| + ProgrammaticScroll); |
| + |
| + EXPECT_EQ(span, floating->parent()); |
| + EXPECT_EQ(container, floating->containingLayer()); |
| + EXPECT_EQ(container, span->parent()); |
| + EXPECT_EQ(container, span->containingLayer()); |
| + |
| + EXPECT_EQ(LayoutPoint(50, -350), floating->location()); |
| + EXPECT_EQ(LayoutPoint(100, -300), span->location()); |
| + |
| + EXPECT_EQ(LayoutPoint(-50, -50), floating->visualOffsetFromAncestor(span)); |
| + EXPECT_EQ(LayoutPoint(50, -350), |
| + floating->visualOffsetFromAncestor(container)); |
| +} |
| + |
| +TEST_P(PaintLayerTest, ColomnSpanLayerUnderExtraLayerScrolled) { |
|
chrishtr
2017/01/27 01:00:06
nit: Column
Xianzhu
2017/01/27 01:22:20
Done.
|
| + setBodyInnerHTML( |
| + "<div id='columns' style='overflow: hidden; width: 80px; height: 80px; " |
| + " columns: 2; column-gap: 0'>" |
| + " <div id='extraLayer'" |
| + " style='position: relative; top: 100px; left: 100px'>" |
| + " <div id='spanner' style='column-span: all; position: relative; " |
| + " top: 50px; left: 50px'>" |
| + " </div>" |
| + " </div>" |
| + " <div style='height: 1000px'></div>" |
| + "</div>"); |
| + |
| + PaintLayer* spanner = |
| + toLayoutBoxModelObject(getLayoutObjectByElementId("spanner"))->layer(); |
| + PaintLayer* extraLayer = |
| + toLayoutBoxModelObject(getLayoutObjectByElementId("extraLayer"))->layer(); |
| + PaintLayer* columns = |
| + toLayoutBoxModelObject(getLayoutObjectByElementId("columns"))->layer(); |
| + columns->getScrollableArea()->setScrollOffset(ScrollOffset(200, 0), |
| + ProgrammaticScroll); |
| + |
| + EXPECT_EQ(extraLayer, spanner->parent()); |
| + EXPECT_EQ(columns, spanner->containingLayer()); |
| + EXPECT_EQ(columns, extraLayer->parent()->parent()); |
| + EXPECT_EQ(columns, extraLayer->containingLayer()->parent()); |
| + |
| + EXPECT_EQ(LayoutPoint(-150, 50), spanner->location()); |
| + EXPECT_EQ(LayoutPoint(100, 100), extraLayer->location()); |
| + // -60 = 2nd-column-x(40) - scroll-offset-x(200) + x-location(100) |
| + // 20 = y-location(100) - column-height(80) |
| + EXPECT_EQ(LayoutPoint(-60, 20), |
| + extraLayer->visualOffsetFromAncestor(columns)); |
| + EXPECT_EQ(LayoutPoint(-150, 50), spanner->visualOffsetFromAncestor(columns)); |
| +} |
| + |
| TEST_P(PaintLayerTest, FloatLayerUnderBlockUnderInlineLayer) { |
| setBodyInnerHTML( |
| "<style>body {margin: 0}</style>" |
| @@ -582,6 +654,7 @@ TEST_P(PaintLayerTest, FloatLayerUnderBlockUnderInlineLayer) { |
| toLayoutBoxModelObject(getLayoutObjectByElementId("span"))->layer(); |
| EXPECT_EQ(span, floating->parent()); |
| + EXPECT_EQ(span, floating->containingLayer()); |
| EXPECT_EQ(LayoutPoint(83, 83), floating->location()); |
| EXPECT_EQ(LayoutPoint(100, 100), span->location()); |