OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/layout/LayoutInline.h" | 5 #include "core/layout/LayoutInline.h" |
6 #include "core/layout/LayoutTestHelper.h" | 6 #include "core/layout/LayoutTestHelper.h" |
7 #include "core/layout/LayoutView.h" | 7 #include "core/layout/LayoutView.h" |
8 #include "platform/geometry/TransformState.h" | 8 #include "platform/geometry/TransformState.h" |
9 #include "platform/testing/RuntimeEnabledFeaturesTestHelpers.h" | 9 #include "platform/testing/RuntimeEnabledFeaturesTestHelpers.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
848 EXPECT_EQ(FloatPoint(10, 120), mappedPoint); | 848 EXPECT_EQ(FloatPoint(10, 120), mappedPoint); |
849 mappedPoint = mapAncestorToLocal(target, flowThread, mappedPoint); | 849 mappedPoint = mapAncestorToLocal(target, flowThread, mappedPoint); |
850 EXPECT_EQ(FloatPoint(), mappedPoint); | 850 EXPECT_EQ(FloatPoint(), mappedPoint); |
851 | 851 |
852 mappedPoint = mapLocalToAncestor(flowThread, container, FloatPoint(10, 120)); | 852 mappedPoint = mapLocalToAncestor(flowThread, container, FloatPoint(10, 120)); |
853 EXPECT_EQ(FloatPoint(125, 35), mappedPoint); | 853 EXPECT_EQ(FloatPoint(125, 35), mappedPoint); |
854 mappedPoint = mapAncestorToLocal(flowThread, container, mappedPoint); | 854 mappedPoint = mapAncestorToLocal(flowThread, container, mappedPoint); |
855 EXPECT_EQ(FloatPoint(10, 120), mappedPoint); | 855 EXPECT_EQ(FloatPoint(10, 120), mappedPoint); |
856 } | 856 } |
857 | 857 |
| 858 TEST_P(MapCoordinatesTest, MulticolWithBlockAbove) { |
| 859 setBodyInnerHTML( |
| 860 "<div id='container' style='columns:3; column-gap:0; " |
| 861 "column-fill:auto; width:300px; height:200px;'>" |
| 862 " <div id='target' style='margin-top:-50px; height:100px;'></div>" |
| 863 "</div>"); |
| 864 |
| 865 LayoutBox* target = toLayoutBox(getLayoutObjectByElementId("target")); |
| 866 LayoutBox* container = toLayoutBox(getLayoutObjectByElementId("container")); |
| 867 |
| 868 FloatPoint mappedPoint = mapLocalToAncestor(target, container, FloatPoint()); |
| 869 EXPECT_EQ(FloatPoint(0, -50), mappedPoint); |
| 870 mappedPoint = mapAncestorToLocal(target, container, mappedPoint); |
| 871 EXPECT_EQ(FloatPoint(), mappedPoint); |
| 872 |
| 873 // Walk each ancestor in the chain separately, to verify each step on the way. |
| 874 LayoutBox* flowThread = target->parentBox(); |
| 875 ASSERT_TRUE(flowThread->isLayoutFlowThread()); |
| 876 |
| 877 mappedPoint = mapLocalToAncestor(target, flowThread, FloatPoint()); |
| 878 EXPECT_EQ(FloatPoint(0, -50), mappedPoint); |
| 879 mappedPoint = mapAncestorToLocal(target, flowThread, mappedPoint); |
| 880 EXPECT_EQ(FloatPoint(), mappedPoint); |
| 881 |
| 882 mappedPoint = mapLocalToAncestor(flowThread, container, FloatPoint(0, -50)); |
| 883 EXPECT_EQ(FloatPoint(0, -50), mappedPoint); |
| 884 mappedPoint = mapAncestorToLocal(flowThread, container, mappedPoint); |
| 885 EXPECT_EQ(FloatPoint(0, -50), mappedPoint); |
| 886 } |
| 887 |
858 TEST_P(MapCoordinatesTest, NestedMulticolWithBlock) { | 888 TEST_P(MapCoordinatesTest, NestedMulticolWithBlock) { |
859 setBodyInnerHTML( | 889 setBodyInnerHTML( |
860 "<div id='outerMulticol' style='columns:2; column-gap:0; " | 890 "<div id='outerMulticol' style='columns:2; column-gap:0; " |
861 "column-fill:auto; width:560px; height:215px; border:8px solid; " | 891 "column-fill:auto; width:560px; height:215px; border:8px solid; " |
862 "padding:7px;'>" | 892 "padding:7px;'>" |
863 " <div style='height:10px;'></div>" | 893 " <div style='height:10px;'></div>" |
864 " <div id='innerMulticol' style='columns:2; column-gap:0; border:8px " | 894 " <div id='innerMulticol' style='columns:2; column-gap:0; border:8px " |
865 "solid; padding:7px;'>" | 895 "solid; padding:7px;'>" |
866 " <div style='height:630px;'></div>" | 896 " <div style='height:630px;'></div>" |
867 " <div id='target' style='width:50px; height:50px;'></div>" | 897 " <div id='target' style='width:50px; height:50px;'></div>" |
(...skipping 684 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1552 LayoutUnit::epsilon()); | 1582 LayoutUnit::epsilon()); |
1553 EXPECT_NEAR(50.0, matrix.projectPoint(FloatPoint(100.0, 50.0)).y(), | 1583 EXPECT_NEAR(50.0, matrix.projectPoint(FloatPoint(100.0, 50.0)).y(), |
1554 LayoutUnit::epsilon()); | 1584 LayoutUnit::epsilon()); |
1555 EXPECT_NEAR(25.0, matrix.projectPoint(FloatPoint(50.0, 100.0)).x(), | 1585 EXPECT_NEAR(25.0, matrix.projectPoint(FloatPoint(50.0, 100.0)).x(), |
1556 LayoutUnit::epsilon()); | 1586 LayoutUnit::epsilon()); |
1557 EXPECT_NEAR(100.0, matrix.projectPoint(FloatPoint(50.0, 100.0)).y(), | 1587 EXPECT_NEAR(100.0, matrix.projectPoint(FloatPoint(50.0, 100.0)).y(), |
1558 LayoutUnit::epsilon()); | 1588 LayoutUnit::epsilon()); |
1559 } | 1589 } |
1560 | 1590 |
1561 } // namespace blink | 1591 } // namespace blink |
OLD | NEW |