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

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

Issue 2365083002: Make NGFragment to own NGPhysicalFragment (Closed)
Patch Set: Created 4 years, 2 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 unified diff | Download patch
OLDNEW
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_constraint_space.h" 5 #include "core/layout/ng/ng_constraint_space.h"
6 6
7 #include "core/layout/ng/ng_layout_opportunity_iterator.h" 7 #include "core/layout/ng/ng_layout_opportunity_iterator.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace blink { 10 namespace blink {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 } 45 }
46 46
47 static String OpportunityToString(const NGConstraintSpace* opportunity) { 47 static String OpportunityToString(const NGConstraintSpace* opportunity) {
48 return opportunity ? opportunity->ToString() : String("(null)"); 48 return opportunity ? opportunity->ToString() : String("(null)");
49 } 49 }
50 50
51 TEST(NGConstraintSpaceTest, LayoutOpportunitiesNoExclusions) { 51 TEST(NGConstraintSpaceTest, LayoutOpportunitiesNoExclusions) {
52 NGPhysicalSize physical_size; 52 NGPhysicalSize physical_size;
53 physical_size.width = LayoutUnit(600); 53 physical_size.width = LayoutUnit(600);
54 physical_size.height = LayoutUnit(400); 54 physical_size.height = LayoutUnit(400);
55 auto* physical_space = new NGPhysicalConstraintSpace(physical_size); 55 NGPhysicalConstraintSpace physical_space(physical_size);
56 auto* space = 56 auto* space =
57 new NGConstraintSpace(HorizontalTopBottom, LeftToRight, physical_space); 57 new NGConstraintSpace(HorizontalTopBottom, LeftToRight, &physical_space);
58 58
59 bool for_inline_or_bfc = true; 59 bool for_inline_or_bfc = true;
60 auto* iterator = space->LayoutOpportunities(NGClearNone, for_inline_or_bfc); 60 auto* iterator = space->LayoutOpportunities(NGClearNone, for_inline_or_bfc);
61 61
62 EXPECT_EQ("0,0 600x400", OpportunityToString(iterator->Next())); 62 EXPECT_EQ("0,0 600x400", OpportunityToString(iterator->Next()));
63 EXPECT_EQ("(null)", OpportunityToString(iterator->Next())); 63 EXPECT_EQ("(null)", OpportunityToString(iterator->Next()));
64 } 64 }
65 65
66 TEST(NGConstraintSpaceTest, LayoutOpportunitiesTopRightExclusion) { 66 TEST(NGConstraintSpaceTest, LayoutOpportunitiesTopRightExclusion) {
67 NGPhysicalSize physical_size; 67 NGPhysicalSize physical_size;
68 physical_size.width = LayoutUnit(600); 68 physical_size.width = LayoutUnit(600);
69 physical_size.height = LayoutUnit(400); 69 physical_size.height = LayoutUnit(400);
70 auto* physical_space = new NGPhysicalConstraintSpace(physical_size); 70 NGPhysicalConstraintSpace physical_space(physical_size);
71 71
72 // Add a 100x100 exclusion in the top right corner. 72 // Add a 100x100 exclusion in the top right corner.
73 physical_space->AddExclusion(NGExclusion(LayoutUnit(0), LayoutUnit(600), 73 physical_space.AddExclusion(NGExclusion(LayoutUnit(0), LayoutUnit(600),
74 LayoutUnit(100), LayoutUnit(500))); 74 LayoutUnit(100), LayoutUnit(500)));
75 75
76 auto* space = 76 auto* space =
77 new NGConstraintSpace(HorizontalTopBottom, LeftToRight, physical_space); 77 new NGConstraintSpace(HorizontalTopBottom, LeftToRight, &physical_space);
78 bool for_inline_or_bfc = true; 78 bool for_inline_or_bfc = true;
79 auto* iterator = space->LayoutOpportunities(NGClearNone, for_inline_or_bfc); 79 auto* iterator = space->LayoutOpportunities(NGClearNone, for_inline_or_bfc);
80 80
81 // First opportunity should be to the left of the exclusion. 81 // First opportunity should be to the left of the exclusion.
82 EXPECT_EQ("0,0 500x400", OpportunityToString(iterator->Next())); 82 EXPECT_EQ("0,0 500x400", OpportunityToString(iterator->Next()));
83 83
84 // Second opportunity should be below the exclusion. 84 // Second opportunity should be below the exclusion.
85 EXPECT_EQ("0,100 600x300", OpportunityToString(iterator->Next())); 85 EXPECT_EQ("0,100 600x300", OpportunityToString(iterator->Next()));
86 86
87 // There should be no third opportunity. 87 // There should be no third opportunity.
88 EXPECT_EQ("(null)", OpportunityToString(iterator->Next())); 88 EXPECT_EQ("(null)", OpportunityToString(iterator->Next()));
89 } 89 }
90 90
91 TEST(NGConstraintSpaceTest, LayoutOpportunitiesTopLeftExclusion) { 91 TEST(NGConstraintSpaceTest, LayoutOpportunitiesTopLeftExclusion) {
92 NGPhysicalSize physical_size; 92 NGPhysicalSize physical_size;
93 physical_size.width = LayoutUnit(600); 93 physical_size.width = LayoutUnit(600);
94 physical_size.height = LayoutUnit(400); 94 physical_size.height = LayoutUnit(400);
95 auto* physical_space = new NGPhysicalConstraintSpace(physical_size); 95 NGPhysicalConstraintSpace physical_space(physical_size);
96 96
97 // Add a 100x100 exclusion in the top left corner. 97 // Add a 100x100 exclusion in the top left corner.
98 physical_space->AddExclusion(NGExclusion(LayoutUnit(0), LayoutUnit(100), 98 physical_space.AddExclusion(NGExclusion(LayoutUnit(0), LayoutUnit(100),
99 LayoutUnit(100), LayoutUnit(0))); 99 LayoutUnit(100), LayoutUnit(0)));
100 100
101 auto* space = 101 auto* space =
102 new NGConstraintSpace(HorizontalTopBottom, LeftToRight, physical_space); 102 new NGConstraintSpace(HorizontalTopBottom, LeftToRight, &physical_space);
103 bool for_inline_or_bfc = true; 103 bool for_inline_or_bfc = true;
104 auto* iterator = space->LayoutOpportunities(NGClearNone, for_inline_or_bfc); 104 auto* iterator = space->LayoutOpportunities(NGClearNone, for_inline_or_bfc);
105 105
106 // First opportunity should be to the right of the exclusion. 106 // First opportunity should be to the right of the exclusion.
107 EXPECT_EQ("100,0 500x400", OpportunityToString(iterator->Next())); 107 EXPECT_EQ("100,0 500x400", OpportunityToString(iterator->Next()));
108 108
109 // Second opportunity should be below the exclusion. 109 // Second opportunity should be below the exclusion.
110 EXPECT_EQ("0,100 600x300", OpportunityToString(iterator->Next())); 110 EXPECT_EQ("0,100 600x300", OpportunityToString(iterator->Next()));
111 111
112 // There should be no third opportunity. 112 // There should be no third opportunity.
113 EXPECT_EQ("(null)", OpportunityToString(iterator->Next())); 113 EXPECT_EQ("(null)", OpportunityToString(iterator->Next()));
114 } 114 }
115 115
116 // 100 200 300 400 500 116 // 100 200 300 400 500
117 // +----|----|----|----|----|----+ 117 // +----|----|----|----|----|----+
118 // 50 | | 118 // 50 | |
119 // 100 | | 119 // 100 | |
120 // 150 | | 120 // 150 | |
121 // 200 | ********** | 121 // 200 | ********** |
122 // 250 | ********** | 122 // 250 | ********** |
123 // 300 | | 123 // 300 | |
124 // 350 | *** | 124 // 350 | *** |
125 // +-----------------------------+ 125 // +-----------------------------+
126 TEST(NGConstraintSpaceTest, LayoutOpportunitiesTwoInMiddle) { 126 TEST(NGConstraintSpaceTest, LayoutOpportunitiesTwoInMiddle) {
127 NGPhysicalSize physical_size; 127 NGPhysicalSize physical_size;
128 physical_size.width = LayoutUnit(600); 128 physical_size.width = LayoutUnit(600);
129 physical_size.height = LayoutUnit(400); 129 physical_size.height = LayoutUnit(400);
130 auto* physical_space = new NGPhysicalConstraintSpace(physical_size); 130 NGPhysicalConstraintSpace physical_space(physical_size);
131 131
132 // Add a 200x100 exclusion at 150x200 132 // Add a 200x100 exclusion at 150x200
133 physical_space->AddExclusion(NGExclusion(LayoutUnit(200), LayoutUnit(250), 133 physical_space.AddExclusion(NGExclusion(LayoutUnit(200), LayoutUnit(250),
134 LayoutUnit(300), LayoutUnit(150))); 134 LayoutUnit(300), LayoutUnit(150)));
135 // Add a 50x50 exclusion at 500x350 135 // Add a 50x50 exclusion at 500x350
136 physical_space->AddExclusion(NGExclusion(LayoutUnit(350), LayoutUnit(550), 136 physical_space.AddExclusion(NGExclusion(LayoutUnit(350), LayoutUnit(550),
137 LayoutUnit(400), LayoutUnit(500))); 137 LayoutUnit(400), LayoutUnit(500)));
138 138
139 auto* space = 139 auto* space =
140 new NGConstraintSpace(HorizontalTopBottom, LeftToRight, physical_space); 140 new NGConstraintSpace(HorizontalTopBottom, LeftToRight, &physical_space);
141 bool for_inline_or_bfc = true; 141 bool for_inline_or_bfc = true;
142 auto* iterator = space->LayoutOpportunities(NGClearNone, for_inline_or_bfc); 142 auto* iterator = space->LayoutOpportunities(NGClearNone, for_inline_or_bfc);
143 143
144 // First opportunity should be above the first exclusion. 144 // First opportunity should be above the first exclusion.
145 EXPECT_EQ("0,0 600x200", OpportunityToString(iterator->Next())); 145 EXPECT_EQ("0,0 600x200", OpportunityToString(iterator->Next()));
146 146
147 // Second opportunity should be full height to the left. 147 // Second opportunity should be full height to the left.
148 EXPECT_EQ("0,0 150x400", OpportunityToString(iterator->Next())); 148 EXPECT_EQ("0,0 150x400", OpportunityToString(iterator->Next()));
149 149
150 // Third opportunity should be to the left of the first exclusion. This is a 150 // Third opportunity should be to the left of the first exclusion. This is a
(...skipping 22 matching lines...) Expand all
173 // Ninth exclusion should be to the right of the last exclusion. 173 // Ninth exclusion should be to the right of the last exclusion.
174 EXPECT_EQ("550,350 50x50", OpportunityToString(iterator->Next())); 174 EXPECT_EQ("550,350 50x50", OpportunityToString(iterator->Next()));
175 175
176 // There should be no tenth opportunity. 176 // There should be no tenth opportunity.
177 EXPECT_EQ("(null)", OpportunityToString(iterator->Next())); 177 EXPECT_EQ("(null)", OpportunityToString(iterator->Next()));
178 } 178 }
179 179
180 } // namespace 180 } // namespace
181 181
182 } // namespace blink 182 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698