Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(124)

Unified Diff: third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc

Issue 2812983002: Change NGLayoutOpportunityIterator API to work with list of exclusions (Closed)
Patch Set: git rebase-update Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 bd57c50dc7161f3af64a1b8822a315148edb8544..a3217b6486efe90dfc7dc58a6ee5c50fbd3f2615 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
@@ -36,7 +36,8 @@ TEST(NGConstraintSpaceTest, LayoutOpportunitiesNoExclusions) {
RefPtr<NGConstraintSpace> space =
ConstructConstraintSpace(kHorizontalTopBottom, TextDirection::kLtr, size);
- NGLayoutOpportunityIterator iterator(space.Get(), space->AvailableSize());
+ NGLayoutOpportunityIterator iterator(
+ space->Exclusions().get(), space->AvailableSize(), NGLogicalOffset());
// 600x400 at (0,0)
NGLayoutOpportunity opp1 = {{}, {LayoutUnit(600), LayoutUnit(400)}};
EXPECT_EQ(opp1, iterator.Next());
@@ -56,7 +57,8 @@ TEST(NGConstraintSpaceTest, LayoutOpportunitiesTopRightExclusion) {
exclusion.rect.offset = {LayoutUnit(500), LayoutUnit()};
space->AddExclusion(exclusion);
- NGLayoutOpportunityIterator iterator(space.Get(), space->AvailableSize());
+ NGLayoutOpportunityIterator iterator(
+ space->Exclusions().get(), space->AvailableSize(), NGLogicalOffset());
// First opportunity should be to the left of the exclusion: 500x400 at (0,0)
NGLayoutOpportunity opp1 = {{}, {LayoutUnit(500), LayoutUnit(400)}};
@@ -81,7 +83,8 @@ TEST(NGConstraintSpaceTest, LayoutOpportunitiesTopLeftExclusion) {
exclusion.rect.size = {LayoutUnit(100), LayoutUnit(100)};
space->AddExclusion(exclusion);
- NGLayoutOpportunityIterator iterator(space.Get(), space->AvailableSize());
+ NGLayoutOpportunityIterator iterator(
+ space->Exclusions().get(), space->AvailableSize(), NGLogicalOffset());
// First opportunity should be to the right of the exclusion:
// 500x400 at (100, 0)
NGLayoutOpportunity opp1 = {{LayoutUnit(100), LayoutUnit()},
@@ -135,7 +138,8 @@ TEST(NGConstraintSpaceTest, LayoutOpportunitiesTwoInMiddle) {
exclusion2.rect.offset = {LayoutUnit(500), LayoutUnit(350)};
space->AddExclusion(exclusion2);
- NGLayoutOpportunityIterator iterator(space.Get(), space->AvailableSize());
+ NGLayoutOpportunityIterator iterator(
+ space->Exclusions().get(), space->AvailableSize(), NGLogicalOffset());
NGLogicalOffset start_point1;
// 600x200 at (0,0)
NGLayoutOpportunity opp1 = {start_point1, {LayoutUnit(600), LayoutUnit(200)}};
@@ -168,74 +172,6 @@ TEST(NGConstraintSpaceTest, LayoutOpportunitiesTwoInMiddle) {
EXPECT_EQ(NGLayoutOpportunity(), iterator.Next());
}
-// This test is the same as LayoutOpportunitiesTwoInMiddle with the only
-// difference that NGLayoutOpportunityIterator takes 2 additional arguments:
-// - origin_point that changes the iterator to return Layout Opportunities that
-// lay after the origin point.
-// - leader_point that together with origin_point creates a temporary exclusion
-//
-// Expected:
-// Layout opportunity iterator generates the next opportunities:
-// - 1st Start Point (0, 200): 350x150, 250x400
-// - 3rd Start Point (550, 200): 50x400
-// - 4th Start Point (0, 300): 600x50, 500x300
-// - 5th Start Point (0, 400): 600x200
-// All other opportunities that are located before the origin point should be
-// filtered out.
-TEST(NGConstraintSpaceTest, LayoutOpportunitiesTwoInMiddleWithOriginAndLeader) {
- NGLogicalSize size;
- size.inline_size = LayoutUnit(600);
- size.block_size = LayoutUnit(400);
- RefPtr<NGConstraintSpace> space =
- ConstructConstraintSpace(kHorizontalTopBottom, TextDirection::kLtr, size);
- // Add exclusions
- NGExclusion exclusion1;
- exclusion1.rect.size = {LayoutUnit(100), LayoutUnit(100)};
- exclusion1.rect.offset = {LayoutUnit(150), LayoutUnit(200)};
- space->AddExclusion(exclusion1);
- NGExclusion exclusion2;
- exclusion2.rect.size = {LayoutUnit(50), LayoutUnit(50)};
- exclusion2.rect.offset = {LayoutUnit(500), LayoutUnit(350)};
- space->AddExclusion(exclusion2);
-
- const NGLogicalOffset origin_point = {LayoutUnit(), LayoutUnit(200)};
- const NGLogicalOffset leader_point = {LayoutUnit(250), LayoutUnit(300)};
- NGLayoutOpportunityIterator iterator(space.Get(), space->AvailableSize(),
- origin_point, leader_point);
-
- NGLogicalOffset start_point1 = {LayoutUnit(250), LayoutUnit(200)};
- // 350x150 at (250,200)
- NGLayoutOpportunity opp1 = {start_point1, {LayoutUnit(350), LayoutUnit(150)}};
- EXPECT_EQ(opp1, iterator.Next());
- // 250x400 at (250,200)
- NGLayoutOpportunity opp2 = {start_point1, {LayoutUnit(250), LayoutUnit(400)}};
- EXPECT_EQ(opp2, iterator.Next());
-
- NGLogicalOffset start_point2 = {LayoutUnit(550), LayoutUnit(200)};
- // 50x400 at (550,200)
- NGLayoutOpportunity opp3 = {start_point2, {LayoutUnit(50), LayoutUnit(400)}};
- EXPECT_EQ(opp3, iterator.Next());
-
- NGLogicalOffset start_point3 = {LayoutUnit(), LayoutUnit(300)};
- // 600x50 at (0,300)
- NGLayoutOpportunity opp4 = {start_point3, {LayoutUnit(600), LayoutUnit(50)}};
- EXPECT_EQ(opp4, iterator.Next());
- // 500x300 at (0,300)
- NGLayoutOpportunity opp5 = {start_point3, {LayoutUnit(500), LayoutUnit(300)}};
- EXPECT_EQ(opp5, iterator.Next());
-
- // 4th Start Point
- NGLogicalOffset start_point4 = {LayoutUnit(), LayoutUnit(400)};
- // 600x200 at (0,400)
- NGLayoutOpportunity opp6 = {start_point4, {LayoutUnit(600), LayoutUnit(200)}};
- EXPECT_EQ(opp6, iterator.Next());
-
- // TODO(glebl): The opportunity below should not be generated.
- EXPECT_EQ("350x200 at (250,400)", iterator.Next().ToString());
-
- EXPECT_EQ(NGLayoutOpportunity(), iterator.Next());
-}
-
// Verifies that Layout Opportunity iterator ignores the exclusion that is not
// within constraint space.
//
@@ -260,7 +196,8 @@ TEST(NGConstraintSpaceTest, LayoutOpportunitiesWithOutOfBoundsExclusions) {
exclusion.rect.offset = {LayoutUnit(), LayoutUnit(150)};
space->AddExclusion(exclusion);
- NGLayoutOpportunityIterator iterator(space.Get(), space->AvailableSize());
+ NGLayoutOpportunityIterator iterator(
+ space->Exclusions().get(), space->AvailableSize(), NGLogicalOffset());
// 600x100 at (0,0)
NGLayoutOpportunity opp = {{}, size};
EXPECT_EQ(opp, iterator.Next());
@@ -288,8 +225,8 @@ TEST(NGConstraintSpaceTest, TwoLeftExclusionsShadowEachOther) {
big_left.type = NGExclusion::kFloatLeft;
space->AddExclusion(big_left);
- NGLayoutOpportunityIterator iterator(space.Get(), space->AvailableSize(),
- bfc_offset);
+ NGLayoutOpportunityIterator iterator(space->Exclusions().get(),
+ space->AvailableSize(), bfc_offset);
NGLogicalOffset start_point1 = bfc_offset;
start_point1.inline_offset +=
@@ -334,8 +271,8 @@ TEST(NGConstraintSpaceTest, TwoRightExclusionsShadowEachOther) {
big_right.type = NGExclusion::kFloatRight;
space->AddExclusion(big_right);
- NGLayoutOpportunityIterator iterator(space.Get(), space->AvailableSize(),
- bfc_offset);
+ NGLayoutOpportunityIterator iterator(space->Exclusions().get(),
+ space->AvailableSize(), bfc_offset);
NGLogicalOffset start_point1 = bfc_offset;
// 170x200 at (8, 8)

Powered by Google App Engine
This is Rietveld 408576698