| 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 |