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_length_utils.h" | 5 #include "core/layout/ng/ng_length_utils.h" |
6 | 6 |
7 #include "core/layout/ng/ng_constraint_space.h" | 7 #include "core/layout/ng/ng_constraint_space.h" |
8 #include "core/layout/ng/ng_constraint_space_builder.h" | 8 #include "core/layout/ng/ng_constraint_space_builder.h" |
9 #include "core/layout/ng/ng_fragment.h" | 9 #include "core/layout/ng/ng_fragment.h" |
10 #include "core/layout/ng/ng_fragment_builder.h" | 10 #include "core/layout/ng/ng_fragment_builder.h" |
(...skipping 10 matching lines...) Expand all Loading... |
21 namespace { | 21 namespace { |
22 | 22 |
23 class NGLengthUtilsTest : public ::testing::Test { | 23 class NGLengthUtilsTest : public ::testing::Test { |
24 protected: | 24 protected: |
25 void SetUp() override { style_ = ComputedStyle::create(); } | 25 void SetUp() override { style_ = ComputedStyle::create(); } |
26 | 26 |
27 static NGConstraintSpace* ConstructConstraintSpace(int inline_size, | 27 static NGConstraintSpace* ConstructConstraintSpace(int inline_size, |
28 int block_size, | 28 int block_size, |
29 bool fixed_inline = false, | 29 bool fixed_inline = false, |
30 bool fixed_block = false) { | 30 bool fixed_block = false) { |
31 NGConstraintSpaceBuilder builder(HorizontalTopBottom); | 31 NGConstraintSpaceBuilder builder(kHorizontalTopBottom); |
32 builder | 32 builder |
33 .SetAvailableSize( | 33 .SetAvailableSize( |
34 NGLogicalSize(LayoutUnit(inline_size), LayoutUnit(block_size))) | 34 NGLogicalSize(LayoutUnit(inline_size), LayoutUnit(block_size))) |
35 .SetPercentageResolutionSize( | 35 .SetPercentageResolutionSize( |
36 NGLogicalSize(LayoutUnit(inline_size), LayoutUnit(block_size))) | 36 NGLogicalSize(LayoutUnit(inline_size), LayoutUnit(block_size))) |
37 .SetIsFixedSizeInline(fixed_inline) | 37 .SetIsFixedSizeInline(fixed_inline) |
38 .SetIsFixedSizeBlock(fixed_block); | 38 .SetIsFixedSizeBlock(fixed_block); |
39 | 39 |
40 return new NGConstraintSpace(HorizontalTopBottom, LTR, | 40 return new NGConstraintSpace(kHorizontalTopBottom, LTR, |
41 builder.ToConstraintSpace()); | 41 builder.ToConstraintSpace()); |
42 } | 42 } |
43 | 43 |
44 LayoutUnit ResolveInlineLength( | 44 LayoutUnit ResolveInlineLength( |
45 const Length& length, | 45 const Length& length, |
46 LengthResolveType type = LengthResolveType::ContentSize, | 46 LengthResolveType type = LengthResolveType::kContentSize, |
47 const WTF::Optional<MinAndMaxContentSizes>& sizes = WTF::nullopt) { | 47 const WTF::Optional<MinAndMaxContentSizes>& sizes = WTF::nullopt) { |
48 NGConstraintSpace* constraintSpace = ConstructConstraintSpace(200, 300); | 48 NGConstraintSpace* constraintSpace = ConstructConstraintSpace(200, 300); |
49 return ::blink::ResolveInlineLength(*constraintSpace, *style_, sizes, | 49 return ::blink::ResolveInlineLength(*constraintSpace, *style_, sizes, |
50 length, type); | 50 length, type); |
51 } | 51 } |
52 | 52 |
53 LayoutUnit ResolveBlockLength( | 53 LayoutUnit ResolveBlockLength( |
54 const Length& length, | 54 const Length& length, |
55 LengthResolveType type = LengthResolveType::ContentSize, | 55 LengthResolveType type = LengthResolveType::kContentSize, |
56 LayoutUnit contentSize = LayoutUnit()) { | 56 LayoutUnit contentSize = LayoutUnit()) { |
57 NGConstraintSpace* constraintSpace = ConstructConstraintSpace(200, 300); | 57 NGConstraintSpace* constraintSpace = ConstructConstraintSpace(200, 300); |
58 return ::blink::ResolveBlockLength(*constraintSpace, *style_, length, | 58 return ::blink::ResolveBlockLength(*constraintSpace, *style_, length, |
59 contentSize, type); | 59 contentSize, type); |
60 } | 60 } |
61 | 61 |
62 LayoutUnit ComputeInlineSizeForFragment( | 62 LayoutUnit ComputeInlineSizeForFragment( |
63 const NGConstraintSpace* constraintSpace = ConstructConstraintSpace(200, | 63 const NGConstraintSpace* constraintSpace = ConstructConstraintSpace(200, |
64 300), | 64 300), |
65 const MinAndMaxContentSizes& sizes = MinAndMaxContentSizes()) { | 65 const MinAndMaxContentSizes& sizes = MinAndMaxContentSizes()) { |
66 return ::blink::ComputeInlineSizeForFragment(*constraintSpace, *style_, | 66 return ::blink::ComputeInlineSizeForFragment(*constraintSpace, *style_, |
67 sizes); | 67 sizes); |
68 } | 68 } |
69 | 69 |
70 LayoutUnit ComputeBlockSizeForFragment( | 70 LayoutUnit ComputeBlockSizeForFragment( |
71 const NGConstraintSpace* constraintSpace = ConstructConstraintSpace(200, | 71 const NGConstraintSpace* constraintSpace = ConstructConstraintSpace(200, |
72 300), | 72 300), |
73 LayoutUnit contentSize = LayoutUnit()) { | 73 LayoutUnit contentSize = LayoutUnit()) { |
74 return ::blink::ComputeBlockSizeForFragment(*constraintSpace, *style_, | 74 return ::blink::ComputeBlockSizeForFragment(*constraintSpace, *style_, |
75 contentSize); | 75 contentSize); |
76 } | 76 } |
77 | 77 |
78 RefPtr<ComputedStyle> style_; | 78 RefPtr<ComputedStyle> style_; |
79 }; | 79 }; |
80 | 80 |
81 TEST_F(NGLengthUtilsTest, testResolveInlineLength) { | 81 TEST_F(NGLengthUtilsTest, testResolveInlineLength) { |
82 EXPECT_EQ(LayoutUnit(60), ResolveInlineLength(Length(30, Percent))); | 82 EXPECT_EQ(LayoutUnit(60), ResolveInlineLength(Length(30, Percent))); |
83 EXPECT_EQ(LayoutUnit(150), ResolveInlineLength(Length(150, Fixed))); | 83 EXPECT_EQ(LayoutUnit(150), ResolveInlineLength(Length(150, Fixed))); |
84 EXPECT_EQ(LayoutUnit(0), | 84 EXPECT_EQ(LayoutUnit(0), |
85 ResolveInlineLength(Length(Auto), LengthResolveType::MinSize)); | 85 ResolveInlineLength(Length(Auto), LengthResolveType::kMinSize)); |
86 EXPECT_EQ(LayoutUnit(200), ResolveInlineLength(Length(Auto))); | 86 EXPECT_EQ(LayoutUnit(200), ResolveInlineLength(Length(Auto))); |
87 EXPECT_EQ(LayoutUnit(200), ResolveInlineLength(Length(FillAvailable))); | 87 EXPECT_EQ(LayoutUnit(200), ResolveInlineLength(Length(FillAvailable))); |
88 | 88 |
89 EXPECT_EQ(LayoutUnit(200), | 89 EXPECT_EQ(LayoutUnit(200), |
90 ResolveInlineLength(Length(Auto), LengthResolveType::MaxSize)); | 90 ResolveInlineLength(Length(Auto), LengthResolveType::kMaxSize)); |
91 EXPECT_EQ(LayoutUnit(200), ResolveInlineLength(Length(FillAvailable), | 91 EXPECT_EQ(LayoutUnit(200), ResolveInlineLength(Length(FillAvailable), |
92 LengthResolveType::MaxSize)); | 92 LengthResolveType::kMaxSize)); |
93 MinAndMaxContentSizes sizes; | 93 MinAndMaxContentSizes sizes; |
94 sizes.min_content = LayoutUnit(30); | 94 sizes.min_content = LayoutUnit(30); |
95 sizes.max_content = LayoutUnit(40); | 95 sizes.max_content = LayoutUnit(40); |
96 EXPECT_EQ(LayoutUnit(30), | 96 EXPECT_EQ(LayoutUnit(30), |
97 ResolveInlineLength(Length(MinContent), | 97 ResolveInlineLength(Length(MinContent), |
98 LengthResolveType::ContentSize, sizes)); | 98 LengthResolveType::kContentSize, sizes)); |
99 EXPECT_EQ(LayoutUnit(40), | 99 EXPECT_EQ(LayoutUnit(40), |
100 ResolveInlineLength(Length(MaxContent), | 100 ResolveInlineLength(Length(MaxContent), |
101 LengthResolveType::ContentSize, sizes)); | 101 LengthResolveType::kContentSize, sizes)); |
102 EXPECT_EQ(LayoutUnit(40), | 102 EXPECT_EQ(LayoutUnit(40), |
103 ResolveInlineLength(Length(FitContent), | 103 ResolveInlineLength(Length(FitContent), |
104 LengthResolveType::ContentSize, sizes)); | 104 LengthResolveType::kContentSize, sizes)); |
105 sizes.max_content = LayoutUnit(800); | 105 sizes.max_content = LayoutUnit(800); |
106 EXPECT_EQ(LayoutUnit(200), | 106 EXPECT_EQ(LayoutUnit(200), |
107 ResolveInlineLength(Length(FitContent), | 107 ResolveInlineLength(Length(FitContent), |
108 LengthResolveType::ContentSize, sizes)); | 108 LengthResolveType::kContentSize, sizes)); |
109 #ifndef NDEBUG | 109 #ifndef NDEBUG |
110 // This should fail a DCHECK. | 110 // This should fail a DCHECK. |
111 EXPECT_DEATH(ResolveInlineLength(Length(FitContent)), "Check failed"); | 111 EXPECT_DEATH(ResolveInlineLength(Length(FitContent)), "Check failed"); |
112 #endif | 112 #endif |
113 } | 113 } |
114 | 114 |
115 TEST_F(NGLengthUtilsTest, testResolveBlockLength) { | 115 TEST_F(NGLengthUtilsTest, testResolveBlockLength) { |
116 EXPECT_EQ(LayoutUnit(90), ResolveBlockLength(Length(30, Percent))); | 116 EXPECT_EQ(LayoutUnit(90), ResolveBlockLength(Length(30, Percent))); |
117 EXPECT_EQ(LayoutUnit(150), ResolveBlockLength(Length(150, Fixed))); | 117 EXPECT_EQ(LayoutUnit(150), ResolveBlockLength(Length(150, Fixed))); |
118 EXPECT_EQ(LayoutUnit(0), ResolveBlockLength(Length(Auto))); | 118 EXPECT_EQ(LayoutUnit(0), ResolveBlockLength(Length(Auto))); |
119 EXPECT_EQ(LayoutUnit(300), ResolveBlockLength(Length(FillAvailable))); | 119 EXPECT_EQ(LayoutUnit(300), ResolveBlockLength(Length(FillAvailable))); |
120 | 120 |
121 EXPECT_EQ(LayoutUnit(0), | 121 EXPECT_EQ(LayoutUnit(0), |
122 ResolveBlockLength(Length(Auto), LengthResolveType::ContentSize)); | 122 ResolveBlockLength(Length(Auto), LengthResolveType::kContentSize)); |
123 EXPECT_EQ(LayoutUnit(300), | 123 EXPECT_EQ(LayoutUnit(300), |
124 ResolveBlockLength(Length(FillAvailable), | 124 ResolveBlockLength(Length(FillAvailable), |
125 LengthResolveType::ContentSize)); | 125 LengthResolveType::kContentSize)); |
126 } | 126 } |
127 | 127 |
128 TEST_F(NGLengthUtilsTest, testComputeInlineSizeForFragment) { | 128 TEST_F(NGLengthUtilsTest, testComputeInlineSizeForFragment) { |
129 MinAndMaxContentSizes sizes; | 129 MinAndMaxContentSizes sizes; |
130 sizes.min_content = LayoutUnit(30); | 130 sizes.min_content = LayoutUnit(30); |
131 sizes.max_content = LayoutUnit(40); | 131 sizes.max_content = LayoutUnit(40); |
132 | 132 |
133 style_->setLogicalWidth(Length(30, Percent)); | 133 style_->setLogicalWidth(Length(30, Percent)); |
134 EXPECT_EQ(LayoutUnit(60), ComputeInlineSizeForFragment()); | 134 EXPECT_EQ(LayoutUnit(60), ComputeInlineSizeForFragment()); |
135 | 135 |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 | 270 |
271 TEST_F(NGLengthUtilsTest, testMargins) { | 271 TEST_F(NGLengthUtilsTest, testMargins) { |
272 style_->setMarginTop(Length(10, Percent)); | 272 style_->setMarginTop(Length(10, Percent)); |
273 style_->setMarginRight(Length(52, Fixed)); | 273 style_->setMarginRight(Length(52, Fixed)); |
274 style_->setMarginBottom(Length(Auto)); | 274 style_->setMarginBottom(Length(Auto)); |
275 style_->setMarginLeft(Length(11, Percent)); | 275 style_->setMarginLeft(Length(11, Percent)); |
276 | 276 |
277 NGConstraintSpace* constraintSpace(ConstructConstraintSpace(200, 300)); | 277 NGConstraintSpace* constraintSpace(ConstructConstraintSpace(200, 300)); |
278 | 278 |
279 NGBoxStrut margins = | 279 NGBoxStrut margins = |
280 ComputeMargins(*constraintSpace, *style_, HorizontalTopBottom, LTR); | 280 ComputeMargins(*constraintSpace, *style_, kHorizontalTopBottom, LTR); |
281 | 281 |
282 EXPECT_EQ(LayoutUnit(20), margins.block_start); | 282 EXPECT_EQ(LayoutUnit(20), margins.block_start); |
283 EXPECT_EQ(LayoutUnit(52), margins.inline_end); | 283 EXPECT_EQ(LayoutUnit(52), margins.inline_end); |
284 EXPECT_EQ(LayoutUnit(), margins.block_end); | 284 EXPECT_EQ(LayoutUnit(), margins.block_end); |
285 EXPECT_EQ(LayoutUnit(22), margins.inline_start); | 285 EXPECT_EQ(LayoutUnit(22), margins.inline_start); |
286 } | 286 } |
287 | 287 |
288 TEST_F(NGLengthUtilsTest, testBorders) { | 288 TEST_F(NGLengthUtilsTest, testBorders) { |
289 style_->setBorderTopWidth(1); | 289 style_->setBorderTopWidth(1); |
290 style_->setBorderRightWidth(2); | 290 style_->setBorderRightWidth(2); |
(...skipping 27 matching lines...) Expand all Loading... |
318 EXPECT_EQ(LayoutUnit(52), padding.block_start); | 318 EXPECT_EQ(LayoutUnit(52), padding.block_start); |
319 EXPECT_EQ(LayoutUnit(), padding.inline_end); | 319 EXPECT_EQ(LayoutUnit(), padding.inline_end); |
320 EXPECT_EQ(LayoutUnit(22), padding.block_end); | 320 EXPECT_EQ(LayoutUnit(22), padding.block_end); |
321 EXPECT_EQ(LayoutUnit(20), padding.inline_start); | 321 EXPECT_EQ(LayoutUnit(20), padding.inline_start); |
322 } | 322 } |
323 | 323 |
324 TEST_F(NGLengthUtilsTest, testAutoMargins) { | 324 TEST_F(NGLengthUtilsTest, testAutoMargins) { |
325 style_->setMarginRight(Length(Auto)); | 325 style_->setMarginRight(Length(Auto)); |
326 style_->setMarginLeft(Length(Auto)); | 326 style_->setMarginLeft(Length(Auto)); |
327 | 327 |
328 NGFragmentBuilder builder(NGPhysicalFragmentBase::FragmentBox); | 328 NGFragmentBuilder builder(NGPhysicalFragmentBase::kFragmentBox); |
329 builder.SetInlineSize(LayoutUnit(150)); | 329 builder.SetInlineSize(LayoutUnit(150)); |
330 NGPhysicalFragment* physical_fragment = builder.ToFragment(); | 330 NGPhysicalFragment* physical_fragment = builder.ToFragment(); |
331 NGFragment* fragment = | 331 NGFragment* fragment = |
332 new NGFragment(HorizontalTopBottom, LTR, physical_fragment); | 332 new NGFragment(kHorizontalTopBottom, LTR, physical_fragment); |
333 | 333 |
334 NGConstraintSpace* constraint_space(ConstructConstraintSpace(200, 300)); | 334 NGConstraintSpace* constraint_space(ConstructConstraintSpace(200, 300)); |
335 | 335 |
336 NGBoxStrut margins; | 336 NGBoxStrut margins; |
337 ApplyAutoMargins(*constraint_space, *style_, *fragment, &margins); | 337 ApplyAutoMargins(*constraint_space, *style_, *fragment, &margins); |
338 | 338 |
339 EXPECT_EQ(LayoutUnit(), margins.block_start); | 339 EXPECT_EQ(LayoutUnit(), margins.block_start); |
340 EXPECT_EQ(LayoutUnit(), margins.block_end); | 340 EXPECT_EQ(LayoutUnit(), margins.block_end); |
341 EXPECT_EQ(LayoutUnit(25), margins.inline_start); | 341 EXPECT_EQ(LayoutUnit(25), margins.inline_start); |
342 EXPECT_EQ(LayoutUnit(25), margins.inline_end); | 342 EXPECT_EQ(LayoutUnit(25), margins.inline_end); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 EXPECT_EQ(125, GetUsedColumnWidth(4, 100, 10, 530)); | 425 EXPECT_EQ(125, GetUsedColumnWidth(4, 100, 10, 530)); |
426 EXPECT_EQ(4, GetUsedColumnCount(4, 100, 10, 530)); | 426 EXPECT_EQ(4, GetUsedColumnCount(4, 100, 10, 530)); |
427 EXPECT_EQ(100, GetUsedColumnWidth(6, 100, 10, 540)); | 427 EXPECT_EQ(100, GetUsedColumnWidth(6, 100, 10, 540)); |
428 EXPECT_EQ(5, GetUsedColumnCount(6, 100, 10, 540)); | 428 EXPECT_EQ(5, GetUsedColumnCount(6, 100, 10, 540)); |
429 EXPECT_EQ(100, GetUsedColumnWidth(0, 100, 10, 540)); | 429 EXPECT_EQ(100, GetUsedColumnWidth(0, 100, 10, 540)); |
430 EXPECT_EQ(5, GetUsedColumnCount(0, 100, 10, 540)); | 430 EXPECT_EQ(5, GetUsedColumnCount(0, 100, 10, 540)); |
431 } | 431 } |
432 | 432 |
433 } // namespace | 433 } // namespace |
434 } // namespace blink | 434 } // namespace blink |
OLD | NEW |