| Index: third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
|
| diff --git a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
|
| index 4a392c382aefbd2ceb5df0f944d2df36e494e8c2..2417d465d9f2a504c80fc3e90d47202ebf53a4be 100644
|
| --- a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
|
| +++ b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
|
| @@ -42,8 +42,49 @@ TEST(NGConstraintSpaceTest, WritingMode) {
|
| EXPECT_EQ(FragmentNone, vert_space->BlockFragmentationType());
|
| }
|
|
|
| -TEST(NGConstraintSpaceTest, LayoutOpportunities) {
|
| - // TODO(eae): Implement in followup change.
|
| +TEST(NGConstraintSpaceTest, LayoutOpportunitiesNoExclusions) {
|
| + NGPhysicalSize physical_size;
|
| + physical_size.width = LayoutUnit(600);
|
| + physical_size.height = LayoutUnit(400);
|
| + auto* physical_space = new NGPhysicalConstraintSpace(physical_size);
|
| + auto* space = new NGConstraintSpace(HorizontalTopBottom, physical_space);
|
| +
|
| + bool for_inline_or_bfc = false;
|
| + auto* iterator = space->LayoutOpportunities(NGClearNone, for_inline_or_bfc);
|
| +
|
| + const NGConstraintSpace* firstOpportunity = iterator->Next();
|
| + EXPECT_NE(nullptr, firstOpportunity);
|
| + EXPECT_EQ(LayoutUnit(600), firstOpportunity->Size().inline_size);
|
| + EXPECT_EQ(LayoutUnit(400), firstOpportunity->Size().block_size);
|
| +
|
| + const NGConstraintSpace* secondOpportunity = iterator->Next();
|
| + EXPECT_EQ(nullptr, secondOpportunity);
|
| +}
|
| +
|
| +TEST(NGConstraintSpaceTest, LayoutOpportunitiesOneExclusion) {
|
| + NGPhysicalSize physical_size;
|
| + physical_size.width = LayoutUnit(600);
|
| + physical_size.height = LayoutUnit(400);
|
| + auto* physical_space = new NGPhysicalConstraintSpace(physical_size);
|
| +
|
| + // Add a 100x100 exclusion in the top right corner.
|
| + physical_space->AddExclusion(NGExclusion(LayoutUnit(0), LayoutUnit(600),
|
| + LayoutUnit(100), LayoutUnit(500)));
|
| +
|
| + auto* space = new NGConstraintSpace(HorizontalTopBottom, physical_space);
|
| + bool for_inline_or_bfc = false;
|
| + auto* iterator = space->LayoutOpportunities(NGClearNone, for_inline_or_bfc);
|
| +
|
| + // First opportunity should be to the left of the exclusion.
|
| + const NGConstraintSpace* firstOpportunity = iterator->Next();
|
| + EXPECT_NE(nullptr, firstOpportunity);
|
| + EXPECT_EQ(LayoutUnit(0), firstOpportunity->Offset().inline_offset);
|
| + EXPECT_EQ(LayoutUnit(0), firstOpportunity->Offset().block_offset);
|
| + EXPECT_EQ(LayoutUnit(500), firstOpportunity->Size().inline_size);
|
| + EXPECT_EQ(LayoutUnit(400), firstOpportunity->Size().block_size);
|
| +
|
| + const NGConstraintSpace* secondOpportunity = iterator->Next();
|
| + EXPECT_EQ(nullptr, secondOpportunity);
|
| }
|
|
|
| } // namespace
|
|
|