| Index: third_party/WebKit/Source/core/layout/MapCoordinatesTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/MapCoordinatesTest.cpp b/third_party/WebKit/Source/core/layout/MapCoordinatesTest.cpp
|
| index ba227494e79df436af2bd64618b19a71dde765ee..ec39aad3e2dd583d8161ff00b59834add0751e57 100644
|
| --- a/third_party/WebKit/Source/core/layout/MapCoordinatesTest.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/MapCoordinatesTest.cpp
|
| @@ -505,6 +505,66 @@ TEST_F(MapCoordinatesTest, FixedPosInFixedPos) {
|
| EXPECT_EQ(FloatPoint(), mappedPoint);
|
| }
|
|
|
| +TEST_F(MapCoordinatesTest, FixedPosInFixedPosScrollView) {
|
| + setBodyInnerHTML(
|
| + "<div style='height: 4000px'></div>"
|
| + "<div id='container' style='position:fixed; top: 100px; left: 100px'>"
|
| + " <div id='target' style='position:fixed; top: 200px; left: 200px'>"
|
| + " </div>"
|
| + "</div>");
|
| +
|
| + LayoutBox* target = toLayoutBox(getLayoutObjectByElementId("target"));
|
| + LayoutBox* container = toLayoutBox(getLayoutObjectByElementId("container"));
|
| + LayoutBox* body = container->parentBox();
|
| + LayoutBox* html = body->parentBox();
|
| + LayoutBox* view = html->parentBox();
|
| + ASSERT_TRUE(view->isLayoutView());
|
| +
|
| + document().view()->setScrollOffset(ScrollOffset(0.0, 50), ProgrammaticScroll);
|
| + document().view()->updateAllLifecyclePhases();
|
| + EXPECT_EQ(50, document().view()->scrollOffsetInt().height());
|
| +
|
| + FloatPoint mappedPoint = mapLocalToAncestor(target, view, FloatPoint());
|
| + EXPECT_EQ(FloatPoint(200, 250), mappedPoint);
|
| + mappedPoint = mapAncestorToLocal(target, view, FloatPoint(200, 250));
|
| + EXPECT_EQ(FloatPoint(), mappedPoint);
|
| +
|
| + mappedPoint = mapLocalToAncestor(target, container, FloatPoint());
|
| + EXPECT_EQ(FloatPoint(100, 100), mappedPoint);
|
| + mappedPoint = mapAncestorToLocal(target, container, FloatPoint(100, 100));
|
| + EXPECT_EQ(FloatPoint(), mappedPoint);
|
| +}
|
| +
|
| +TEST_F(MapCoordinatesTest, FixedPosInAbsolutePosScrollView) {
|
| + setBodyInnerHTML(
|
| + "<div style='height: 4000px'></div>"
|
| + "<div id='container' style='position:absolute; top: 100px; left: 100px'>"
|
| + " <div id='target' style='position:fixed; top: 200px; left: 200px'>"
|
| + " </div>"
|
| + "</div>");
|
| +
|
| + LayoutBox* target = toLayoutBox(getLayoutObjectByElementId("target"));
|
| + LayoutBox* container = toLayoutBox(getLayoutObjectByElementId("container"));
|
| + LayoutBox* body = container->parentBox();
|
| + LayoutBox* html = body->parentBox();
|
| + LayoutBox* view = html->parentBox();
|
| + ASSERT_TRUE(view->isLayoutView());
|
| +
|
| + document().view()->setScrollOffset(ScrollOffset(0.0, 50), ProgrammaticScroll);
|
| + document().view()->updateAllLifecyclePhases();
|
| + EXPECT_EQ(50, document().view()->scrollOffsetInt().height());
|
| +
|
| + FloatPoint mappedPoint = mapLocalToAncestor(target, view, FloatPoint());
|
| + EXPECT_EQ(FloatPoint(200, 250), mappedPoint);
|
| + mappedPoint = mapAncestorToLocal(target, view, FloatPoint(200, 250));
|
| + EXPECT_EQ(FloatPoint(), mappedPoint);
|
| +
|
| + mappedPoint = mapLocalToAncestor(target, container, FloatPoint());
|
| + EXPECT_EQ(FloatPoint(100, 150), mappedPoint);
|
| + mappedPoint = mapAncestorToLocal(target, container, FloatPoint(100, 150));
|
| + EXPECT_EQ(FloatPoint(), mappedPoint);
|
| +}
|
| +
|
| TEST_F(MapCoordinatesTest, FixedPosInTransform) {
|
| setBodyInnerHTML(
|
| "<style>#container { transform: translateY(100px); position: absolute; "
|
|
|