| 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 278d14dea531c6233e71cf3e29bb99bcf5c7d90a..942d384a5574609ff91c56485dce4b72e65d55db 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
|
| @@ -5,8 +5,8 @@
|
| #include "core/layout/ng/ng_constraint_space.h"
|
|
|
| #include "core/layout/ng/ng_constraint_space.h"
|
| +#include "core/layout/ng/ng_constraint_space_builder.h"
|
| #include "core/layout/ng/ng_layout_opportunity_iterator.h"
|
| -#include "core/layout/ng/ng_physical_constraint_space.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace blink {
|
| @@ -15,50 +15,15 @@ namespace {
|
|
|
| NGConstraintSpace* ConstructConstraintSpace(NGWritingMode writing_mode,
|
| TextDirection direction,
|
| - NGPhysicalSize size) {
|
| - return new NGConstraintSpace(
|
| - writing_mode, direction,
|
| - new NGPhysicalConstraintSpace(
|
| - size, size, /* fixed_width */ true, /* fixed_height */ false,
|
| - /* width_direction_triggers_scrollbar */ true,
|
| - /* height_direction_triggers_scrollbar */ false, kFragmentNone,
|
| - kFragmentColumn, /* is_new_fc */ false));
|
| -}
|
| -
|
| -TEST(NGConstraintSpaceTest, WritingMode) {
|
| - NGPhysicalConstraintSpace* phy_space = new NGPhysicalConstraintSpace(
|
| - NGPhysicalSize(LayoutUnit(200), LayoutUnit(100)),
|
| - NGPhysicalSize(LayoutUnit(200), LayoutUnit(100)), /* fixed_width */ true,
|
| - /* fixed_height */ false, /* width_direction_triggers_scrollbar */ true,
|
| - /* height_direction_triggers_scrollbar */ false, kFragmentNone,
|
| - kFragmentColumn, /* is_new_fc */ false);
|
| -
|
| - NGConstraintSpace* horz_space =
|
| - new NGConstraintSpace(kHorizontalTopBottom, LTR, phy_space);
|
| -
|
| - NGConstraintSpace* vert_space =
|
| - new NGConstraintSpace(kVerticalRightLeft, LTR, phy_space);
|
| -
|
| - EXPECT_EQ(LayoutUnit(200), horz_space->AvailableSize().inline_size);
|
| - EXPECT_EQ(LayoutUnit(200), vert_space->AvailableSize().block_size);
|
| -
|
| - EXPECT_EQ(LayoutUnit(100), horz_space->AvailableSize().block_size);
|
| - EXPECT_EQ(LayoutUnit(100), vert_space->AvailableSize().inline_size);
|
| -
|
| - EXPECT_TRUE(horz_space->InlineTriggersScrollbar());
|
| - EXPECT_TRUE(vert_space->BlockTriggersScrollbar());
|
| -
|
| - EXPECT_FALSE(horz_space->BlockTriggersScrollbar());
|
| - EXPECT_FALSE(vert_space->InlineTriggersScrollbar());
|
| -
|
| - EXPECT_TRUE(horz_space->FixedInlineSize());
|
| - EXPECT_TRUE(vert_space->FixedBlockSize());
|
| -
|
| - EXPECT_FALSE(horz_space->FixedBlockSize());
|
| - EXPECT_FALSE(vert_space->FixedInlineSize());
|
| -
|
| - EXPECT_EQ(kFragmentColumn, horz_space->BlockFragmentationType());
|
| - EXPECT_EQ(kFragmentNone, vert_space->BlockFragmentationType());
|
| + NGLogicalSize size) {
|
| + return NGConstraintSpaceBuilder(writing_mode)
|
| + .SetTextDirection(direction)
|
| + .SetAvailableSize(size)
|
| + .SetPercentageResolutionSize(size)
|
| + .SetIsFixedSizeInline(true)
|
| + .SetIsInlineDirectionTriggersScrollbar(true)
|
| + .SetFragmentationType(NGFragmentationType::kFragmentColumn)
|
| + .ToConstraintSpace();
|
| }
|
|
|
| static String OpportunityToString(const NGLayoutOpportunity& opportunity) {
|
| @@ -66,26 +31,21 @@ static String OpportunityToString(const NGLayoutOpportunity& opportunity) {
|
| }
|
|
|
| TEST(NGConstraintSpaceTest, LayoutOpportunitiesNoExclusions) {
|
| - NGPhysicalSize physical_size;
|
| - physical_size.width = LayoutUnit(600);
|
| - physical_size.height = LayoutUnit(400);
|
| -
|
| - auto* space =
|
| - ConstructConstraintSpace(kHorizontalTopBottom, LTR, physical_size);
|
| + NGLogicalSize size;
|
| + size.inline_size = LayoutUnit(600);
|
| + size.block_size = LayoutUnit(400);
|
| + auto* space = ConstructConstraintSpace(kHorizontalTopBottom, LTR, size);
|
| auto* iterator = space->LayoutOpportunities();
|
| -
|
| EXPECT_EQ("0,0 600x400", OpportunityToString(iterator->Next()));
|
| EXPECT_EQ("(empty)", OpportunityToString(iterator->Next()));
|
| }
|
|
|
| TEST(NGConstraintSpaceTest, LayoutOpportunitiesTopRightExclusion) {
|
| - NGPhysicalSize physical_size;
|
| - physical_size.width = LayoutUnit(600);
|
| - physical_size.height = LayoutUnit(400);
|
| -
|
| + NGLogicalSize size;
|
| + size.inline_size = LayoutUnit(600);
|
| + size.block_size = LayoutUnit(400);
|
| // Create a space with a 100x100 exclusion in the top right corner.
|
| - auto* space =
|
| - ConstructConstraintSpace(kHorizontalTopBottom, LTR, physical_size);
|
| + auto* space = ConstructConstraintSpace(kHorizontalTopBottom, LTR, size);
|
| NGExclusion exclusion;
|
| exclusion.rect.size = {/* inline_size */ LayoutUnit(100),
|
| /* block_size */ LayoutUnit(100)};
|
| @@ -93,40 +53,31 @@ TEST(NGConstraintSpaceTest, LayoutOpportunitiesTopRightExclusion) {
|
| /* block_offset */ LayoutUnit(0)};
|
| space->AddExclusion(exclusion);
|
| auto* iterator = space->LayoutOpportunities();
|
| -
|
| // First opportunity should be to the left of the exclusion.
|
| EXPECT_EQ("0,0 500x400", OpportunityToString(iterator->Next()));
|
| -
|
| // Second opportunity should be below the exclusion.
|
| EXPECT_EQ("0,100 600x300", OpportunityToString(iterator->Next()));
|
| -
|
| // There should be no third opportunity.
|
| EXPECT_EQ("(empty)", OpportunityToString(iterator->Next()));
|
| }
|
|
|
| TEST(NGConstraintSpaceTest, LayoutOpportunitiesTopLeftExclusion) {
|
| - NGPhysicalSize physical_size;
|
| - physical_size.width = LayoutUnit(600);
|
| - physical_size.height = LayoutUnit(400);
|
| -
|
| + NGLogicalSize size;
|
| + size.inline_size = LayoutUnit(600);
|
| + size.block_size = LayoutUnit(400);
|
| // Create a space with a 100x100 exclusion in the top left corner.
|
| - auto* space =
|
| - ConstructConstraintSpace(kHorizontalTopBottom, LTR, physical_size);
|
| + auto* space = ConstructConstraintSpace(kHorizontalTopBottom, LTR, size);
|
| NGExclusion exclusion;
|
| exclusion.rect.size = {/* inline_size */ LayoutUnit(100),
|
| /* block_size */ LayoutUnit(100)};
|
| exclusion.rect.offset = {/* inline_offset */ LayoutUnit(0),
|
| /* block_offset */ LayoutUnit(0)};
|
| space->AddExclusion(exclusion);
|
| -
|
| auto* iterator = space->LayoutOpportunities();
|
| -
|
| // First opportunity should be to the right of the exclusion.
|
| EXPECT_EQ("100,0 500x400", OpportunityToString(iterator->Next()));
|
| -
|
| // Second opportunity should be below the exclusion.
|
| EXPECT_EQ("0,100 600x300", OpportunityToString(iterator->Next()));
|
| -
|
| // There should be no third opportunity.
|
| EXPECT_EQ("(empty)", OpportunityToString(iterator->Next()));
|
| }
|
| @@ -155,12 +106,10 @@ TEST(NGConstraintSpaceTest, LayoutOpportunitiesTopLeftExclusion) {
|
| // - 3rd Start Point: 550,0 50x400
|
| // - 4th Start Point: 0,300 600x50; 0,300 500x100
|
| TEST(NGConstraintSpaceTest, LayoutOpportunitiesTwoInMiddle) {
|
| - NGPhysicalSize physical_size;
|
| - physical_size.width = LayoutUnit(600);
|
| - physical_size.height = LayoutUnit(400);
|
| -
|
| - auto* space =
|
| - ConstructConstraintSpace(kHorizontalTopBottom, LTR, physical_size);
|
| + NGLogicalSize size;
|
| + size.inline_size = LayoutUnit(600);
|
| + size.block_size = LayoutUnit(400);
|
| + auto* space = ConstructConstraintSpace(kHorizontalTopBottom, LTR, size);
|
| // Add exclusions
|
| NGExclusion exclusion1;
|
| exclusion1.rect.size = {/* inline_size */ LayoutUnit(100),
|
| @@ -174,24 +123,18 @@ TEST(NGConstraintSpaceTest, LayoutOpportunitiesTwoInMiddle) {
|
| exclusion2.rect.offset = {/* inline_offset */ LayoutUnit(500),
|
| /* block_offset */ LayoutUnit(350)};
|
| space->AddExclusion(exclusion2);
|
| -
|
| auto* iterator = space->LayoutOpportunities();
|
| -
|
| // 1st Start point
|
| EXPECT_EQ("0,0 600x200", OpportunityToString(iterator->Next()));
|
| EXPECT_EQ("0,0 150x400", OpportunityToString(iterator->Next()));
|
| -
|
| // 2nd Start point
|
| EXPECT_EQ("250,0 350x350", OpportunityToString(iterator->Next()));
|
| EXPECT_EQ("250,0 250x400", OpportunityToString(iterator->Next()));
|
| -
|
| // 3rd Start point
|
| EXPECT_EQ("550,0 50x400", OpportunityToString(iterator->Next()));
|
| -
|
| // 4th Start point
|
| EXPECT_EQ("0,300 600x50", OpportunityToString(iterator->Next()));
|
| EXPECT_EQ("0,300 500x100", OpportunityToString(iterator->Next()));
|
| -
|
| // Iterator is exhausted.
|
| EXPECT_EQ("(empty)", OpportunityToString(iterator->Next()));
|
| }
|
| @@ -210,12 +153,10 @@ TEST(NGConstraintSpaceTest, LayoutOpportunitiesTwoInMiddle) {
|
| // All other opportunities that are located before the origin point should be
|
| // filtered out.
|
| TEST(NGConstraintSpaceTest, LayoutOpportunitiesTwoInMiddleWithOriginAndLeader) {
|
| - NGPhysicalSize physical_size;
|
| - physical_size.width = LayoutUnit(600);
|
| - physical_size.height = LayoutUnit(400);
|
| -
|
| - auto* space =
|
| - ConstructConstraintSpace(kHorizontalTopBottom, LTR, physical_size);
|
| + NGLogicalSize size;
|
| + size.inline_size = LayoutUnit(600);
|
| + size.block_size = LayoutUnit(400);
|
| + auto* space = ConstructConstraintSpace(kHorizontalTopBottom, LTR, size);
|
| // Add exclusions
|
| NGExclusion exclusion1;
|
| exclusion1.rect.size = {/* inline_size */ LayoutUnit(100),
|
| @@ -229,27 +170,21 @@ TEST(NGConstraintSpaceTest, LayoutOpportunitiesTwoInMiddleWithOriginAndLeader) {
|
| exclusion2.rect.offset = {/* inline_offset */ LayoutUnit(500),
|
| /* block_offset */ LayoutUnit(350)};
|
| space->AddExclusion(exclusion2);
|
| -
|
| const NGLogicalOffset origin_point = {LayoutUnit(0), LayoutUnit(200)};
|
| const NGLogicalOffset leader_point = {LayoutUnit(250), LayoutUnit(300)};
|
| auto* iterator =
|
| new NGLayoutOpportunityIterator(space, origin_point, leader_point);
|
| -
|
| // 1st Start Point
|
| EXPECT_EQ("250,200 350x150", OpportunityToString(iterator->Next()));
|
| EXPECT_EQ("250,200 250x200", OpportunityToString(iterator->Next()));
|
| -
|
| // 2nd Start Point
|
| EXPECT_EQ("550,200 50x200", OpportunityToString(iterator->Next()));
|
| -
|
| // 3rd Start Point
|
| EXPECT_EQ("0,300 600x50", OpportunityToString(iterator->Next()));
|
| EXPECT_EQ("0,300 500x100", OpportunityToString(iterator->Next()));
|
| -
|
| // Iterator is exhausted.
|
| EXPECT_EQ("(empty)", OpportunityToString(iterator->Next()));
|
| }
|
| -
|
| // Verifies that Layout Opportunity iterator ignores the exclusion that is not
|
| // within constraint space.
|
| //
|
| @@ -266,21 +201,17 @@ TEST(NGConstraintSpaceTest, LayoutOpportunitiesTwoInMiddleWithOriginAndLeader) {
|
| // Layout opportunity iterator generates only one opportunity that equals to
|
| // available constraint space, i.e. 0,0 600x200
|
| TEST(NGConstraintSpaceTest, LayoutOpportunitiesWithOutOfBoundsExclusions) {
|
| - NGPhysicalSize physical_size;
|
| - physical_size.width = LayoutUnit(600);
|
| - physical_size.height = LayoutUnit(100);
|
| -
|
| - auto* space =
|
| - ConstructConstraintSpace(kHorizontalTopBottom, LTR, physical_size);
|
| + NGLogicalSize size;
|
| + size.inline_size = LayoutUnit(600);
|
| + size.block_size = LayoutUnit(100);
|
| + auto* space = ConstructConstraintSpace(kHorizontalTopBottom, LTR, size);
|
| NGExclusion exclusion;
|
| exclusion.rect.size = {/* inline_size */ LayoutUnit(100),
|
| /* block_size */ LayoutUnit(100)};
|
| exclusion.rect.offset = {/* inline_offset */ LayoutUnit(0),
|
| /* block_offset */ LayoutUnit(150)};
|
| space->AddExclusion(exclusion);
|
| -
|
| auto* iterator = space->LayoutOpportunities();
|
| -
|
| EXPECT_EQ("0,0 600x100", OpportunityToString(iterator->Next()));
|
| EXPECT_EQ("(empty)", OpportunityToString(iterator->Next()));
|
| }
|
|
|