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/ng/ng_block_layout_algorithm.h" | 5 #include "core/layout/ng/ng_block_layout_algorithm.h" |
6 | 6 |
7 #include "core/dom/NodeComputedStyle.h" | 7 #include "core/dom/NodeComputedStyle.h" |
8 #include "core/dom/TagCollection.h" | 8 #include "core/dom/TagCollection.h" |
9 #include "core/layout/ng/layout_ng_block_flow.h" | 9 #include "core/layout/ng/layout_ng_block_flow.h" |
10 #include "core/layout/ng/ng_block_node.h" | 10 #include "core/layout/ng/ng_block_node.h" |
(...skipping 1097 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1108 container_fragment = toNGPhysicalBoxFragment(body_fragment->Children()[0]); | 1108 container_fragment = toNGPhysicalBoxFragment(body_fragment->Children()[0]); |
1109 ASSERT_EQ(3UL, container_fragment->Children().size()); | 1109 ASSERT_EQ(3UL, container_fragment->Children().size()); |
1110 clerance_fragment = | 1110 clerance_fragment = |
1111 toNGPhysicalBoxFragment(container_fragment->Children()[0]); | 1111 toNGPhysicalBoxFragment(container_fragment->Children()[0]); |
1112 block_fragment = toNGPhysicalBoxFragment(container_fragment->Children()[1]); | 1112 block_fragment = toNGPhysicalBoxFragment(container_fragment->Children()[1]); |
1113 adjoining_clearance_fragment = | 1113 adjoining_clearance_fragment = |
1114 toNGPhysicalBoxFragment(container_fragment->Children()[2]); | 1114 toNGPhysicalBoxFragment(container_fragment->Children()[2]); |
1115 }; | 1115 }; |
1116 | 1116 |
1117 // clear: none | 1117 // clear: none |
1118 run_with_clearance(EClear::ClearNone); | 1118 run_with_clearance(EClear::kNone); |
1119 // 20 = std::max(body's margin 8, clearance's margins 20) | 1119 // 20 = std::max(body's margin 8, clearance's margins 20) |
1120 EXPECT_EQ(LayoutUnit(20), body_fragment->TopOffset()); | 1120 EXPECT_EQ(LayoutUnit(20), body_fragment->TopOffset()); |
1121 EXPECT_EQ(LayoutUnit(0), container_fragment->TopOffset()); | 1121 EXPECT_EQ(LayoutUnit(0), container_fragment->TopOffset()); |
1122 // 0 = collapsed margins | 1122 // 0 = collapsed margins |
1123 EXPECT_EQ(LayoutUnit(0), clerance_fragment->TopOffset()); | 1123 EXPECT_EQ(LayoutUnit(0), clerance_fragment->TopOffset()); |
1124 // 100 = clearance's height 60 + | 1124 // 100 = clearance's height 60 + |
1125 // std::max(clearance's margins 20, block's margins 40) | 1125 // std::max(clearance's margins 20, block's margins 40) |
1126 EXPECT_EQ(LayoutUnit(100), block_fragment->TopOffset()); | 1126 EXPECT_EQ(LayoutUnit(100), block_fragment->TopOffset()); |
1127 // 200 = 100 + block's height 60 + max(adjoining_clearance's margins 30, | 1127 // 200 = 100 + block's height 60 + max(adjoining_clearance's margins 30, |
1128 // block's margins 40) | 1128 // block's margins 40) |
1129 EXPECT_EQ(LayoutUnit(200), adjoining_clearance_fragment->TopOffset()); | 1129 EXPECT_EQ(LayoutUnit(200), adjoining_clearance_fragment->TopOffset()); |
1130 | 1130 |
1131 // clear: right | 1131 // clear: right |
1132 run_with_clearance(EClear::ClearRight); | 1132 run_with_clearance(EClear::kRight); |
1133 // 8 = body's margin. This doesn't collapse its margins with 'clearance' block | 1133 // 8 = body's margin. This doesn't collapse its margins with 'clearance' block |
1134 // as it's not an adjoining block to body. | 1134 // as it's not an adjoining block to body. |
1135 EXPECT_EQ(LayoutUnit(8), body_fragment->TopOffset()); | 1135 EXPECT_EQ(LayoutUnit(8), body_fragment->TopOffset()); |
1136 EXPECT_EQ(LayoutUnit(0), container_fragment->TopOffset()); | 1136 EXPECT_EQ(LayoutUnit(0), container_fragment->TopOffset()); |
1137 // 170 = float-right's height | 1137 // 170 = float-right's height |
1138 EXPECT_EQ(LayoutUnit(170), clerance_fragment->TopOffset()); | 1138 EXPECT_EQ(LayoutUnit(170), clerance_fragment->TopOffset()); |
1139 // 270 = float-right's height + clearance's height 60 + | 1139 // 270 = float-right's height + clearance's height 60 + |
1140 // max(clearance's margin 20, block margin 40) | 1140 // max(clearance's margin 20, block margin 40) |
1141 EXPECT_EQ(LayoutUnit(270), block_fragment->TopOffset()); | 1141 EXPECT_EQ(LayoutUnit(270), block_fragment->TopOffset()); |
1142 // 370 = block's offset 270 + block's height 60 + | 1142 // 370 = block's offset 270 + block's height 60 + |
1143 // std::max(block's margin 40, adjoining_clearance's margin 30) | 1143 // std::max(block's margin 40, adjoining_clearance's margin 30) |
1144 EXPECT_EQ(LayoutUnit(370), adjoining_clearance_fragment->TopOffset()); | 1144 EXPECT_EQ(LayoutUnit(370), adjoining_clearance_fragment->TopOffset()); |
1145 | 1145 |
1146 // clear: left | 1146 // clear: left |
1147 run_with_clearance(EClear::ClearLeft); | 1147 run_with_clearance(EClear::kLeft); |
1148 // 8 = body's margin. This doesn't collapse its margins with 'clearance' block | 1148 // 8 = body's margin. This doesn't collapse its margins with 'clearance' block |
1149 // as it's not an adjoining block to body. | 1149 // as it's not an adjoining block to body. |
1150 EXPECT_EQ(LayoutUnit(8), body_fragment->TopOffset()); | 1150 EXPECT_EQ(LayoutUnit(8), body_fragment->TopOffset()); |
1151 EXPECT_EQ(LayoutUnit(0), container_fragment->TopOffset()); | 1151 EXPECT_EQ(LayoutUnit(0), container_fragment->TopOffset()); |
1152 // 30 = float_left's height | 1152 // 30 = float_left's height |
1153 EXPECT_EQ(LayoutUnit(30), clerance_fragment->TopOffset()); | 1153 EXPECT_EQ(LayoutUnit(30), clerance_fragment->TopOffset()); |
1154 // 130 = float_left's height + clearance's height 60 + | 1154 // 130 = float_left's height + clearance's height 60 + |
1155 // max(clearance's margin 20, block margin 40) | 1155 // max(clearance's margin 20, block margin 40) |
1156 EXPECT_EQ(LayoutUnit(130), block_fragment->TopOffset()); | 1156 EXPECT_EQ(LayoutUnit(130), block_fragment->TopOffset()); |
1157 // 230 = block's offset 130 + block's height 60 + | 1157 // 230 = block's offset 130 + block's height 60 + |
1158 // std::max(block's margin 40, adjoining_clearance's margin 30) | 1158 // std::max(block's margin 40, adjoining_clearance's margin 30) |
1159 EXPECT_EQ(LayoutUnit(230), adjoining_clearance_fragment->TopOffset()); | 1159 EXPECT_EQ(LayoutUnit(230), adjoining_clearance_fragment->TopOffset()); |
1160 | 1160 |
1161 // clear: both | 1161 // clear: both |
1162 // same as clear: right | 1162 // same as clear: right |
1163 run_with_clearance(EClear::ClearBoth); | 1163 run_with_clearance(EClear::kBoth); |
1164 EXPECT_EQ(LayoutUnit(8), body_fragment->TopOffset()); | 1164 EXPECT_EQ(LayoutUnit(8), body_fragment->TopOffset()); |
1165 EXPECT_EQ(LayoutUnit(0), container_fragment->TopOffset()); | 1165 EXPECT_EQ(LayoutUnit(0), container_fragment->TopOffset()); |
1166 EXPECT_EQ(LayoutUnit(170), clerance_fragment->TopOffset()); | 1166 EXPECT_EQ(LayoutUnit(170), clerance_fragment->TopOffset()); |
1167 EXPECT_EQ(LayoutUnit(270), block_fragment->TopOffset()); | 1167 EXPECT_EQ(LayoutUnit(270), block_fragment->TopOffset()); |
1168 EXPECT_EQ(LayoutUnit(370), adjoining_clearance_fragment->TopOffset()); | 1168 EXPECT_EQ(LayoutUnit(370), adjoining_clearance_fragment->TopOffset()); |
1169 } | 1169 } |
1170 | 1170 |
1171 // Verifies that we compute the right min and max-content size. | 1171 // Verifies that we compute the right min and max-content size. |
1172 TEST_F(NGBlockLayoutAlgorithmTest, ComputeMinMaxContent) { | 1172 TEST_F(NGBlockLayoutAlgorithmTest, ComputeMinMaxContent) { |
1173 const int kWidth = 50; | 1173 const int kWidth = 50; |
(...skipping 754 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1928 EXPECT_EQ(LayoutUnit(194), fragment->LeftOffset()); | 1928 EXPECT_EQ(LayoutUnit(194), fragment->LeftOffset()); |
1929 EXPECT_EQ(LayoutUnit(), fragment->TopOffset()); | 1929 EXPECT_EQ(LayoutUnit(), fragment->TopOffset()); |
1930 EXPECT_EQ(LayoutUnit(16), fragment->Width()); | 1930 EXPECT_EQ(LayoutUnit(16), fragment->Width()); |
1931 EXPECT_EQ(LayoutUnit(50), fragment->Height()); | 1931 EXPECT_EQ(LayoutUnit(50), fragment->Height()); |
1932 EXPECT_EQ(0UL, fragment->Children().size()); | 1932 EXPECT_EQ(0UL, fragment->Children().size()); |
1933 EXPECT_FALSE(iterator.NextChild()); | 1933 EXPECT_FALSE(iterator.NextChild()); |
1934 } | 1934 } |
1935 | 1935 |
1936 } // namespace | 1936 } // namespace |
1937 } // namespace blink | 1937 } // namespace blink |
OLD | NEW |