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

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

Issue 2536323003: [LayoutNG] Fix enum values to conform to kEnumName in style guide. (Closed)
Patch Set: rebase. Created 4 years 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_block_layout_algorithm.h" 5 #include "core/layout/ng/ng_block_layout_algorithm.h"
6 6
7 #include "core/layout/ng/ng_block_node.h" 7 #include "core/layout/ng/ng_block_node.h"
8 #include "core/layout/ng/ng_constraint_space.h" 8 #include "core/layout/ng/ng_constraint_space.h"
9 #include "core/layout/ng/ng_constraint_space_builder.h" 9 #include "core/layout/ng/ng_constraint_space_builder.h"
10 #include "core/layout/ng/ng_physical_fragment_base.h" 10 #include "core/layout/ng/ng_physical_fragment_base.h"
(...skipping 30 matching lines...) Expand all
41 } 41 }
42 42
43 RefPtr<ComputedStyle> style_; 43 RefPtr<ComputedStyle> style_;
44 }; 44 };
45 45
46 TEST_F(NGBlockLayoutAlgorithmTest, FixedSize) { 46 TEST_F(NGBlockLayoutAlgorithmTest, FixedSize) {
47 style_->setWidth(Length(30, Fixed)); 47 style_->setWidth(Length(30, Fixed));
48 style_->setHeight(Length(40, Fixed)); 48 style_->setHeight(Length(40, Fixed));
49 49
50 auto* space = ConstructConstraintSpace( 50 auto* space = ConstructConstraintSpace(
51 HorizontalTopBottom, LTR, 51 kHorizontalTopBottom, LTR,
52 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite)); 52 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite));
53 NGPhysicalFragmentBase* frag = RunBlockLayoutAlgorithm(space, nullptr); 53 NGPhysicalFragmentBase* frag = RunBlockLayoutAlgorithm(space, nullptr);
54 54
55 EXPECT_EQ(LayoutUnit(30), frag->Width()); 55 EXPECT_EQ(LayoutUnit(30), frag->Width());
56 EXPECT_EQ(LayoutUnit(40), frag->Height()); 56 EXPECT_EQ(LayoutUnit(40), frag->Height());
57 } 57 }
58 58
59 // Verifies that two children are laid out with the correct size and position. 59 // Verifies that two children are laid out with the correct size and position.
60 TEST_F(NGBlockLayoutAlgorithmTest, LayoutBlockChildren) { 60 TEST_F(NGBlockLayoutAlgorithmTest, LayoutBlockChildren) {
61 const int kWidth = 30; 61 const int kWidth = 30;
62 const int kHeight1 = 20; 62 const int kHeight1 = 20;
63 const int kHeight2 = 30; 63 const int kHeight2 = 30;
64 const int kMarginTop = 5; 64 const int kMarginTop = 5;
65 const int kMarginBottom = 20; 65 const int kMarginBottom = 20;
66 style_->setWidth(Length(kWidth, Fixed)); 66 style_->setWidth(Length(kWidth, Fixed));
67 67
68 RefPtr<ComputedStyle> first_style = ComputedStyle::create(); 68 RefPtr<ComputedStyle> first_style = ComputedStyle::create();
69 first_style->setHeight(Length(kHeight1, Fixed)); 69 first_style->setHeight(Length(kHeight1, Fixed));
70 NGBlockNode* first_child = new NGBlockNode(first_style.get()); 70 NGBlockNode* first_child = new NGBlockNode(first_style.get());
71 71
72 RefPtr<ComputedStyle> second_style = ComputedStyle::create(); 72 RefPtr<ComputedStyle> second_style = ComputedStyle::create();
73 second_style->setHeight(Length(kHeight2, Fixed)); 73 second_style->setHeight(Length(kHeight2, Fixed));
74 second_style->setMarginTop(Length(kMarginTop, Fixed)); 74 second_style->setMarginTop(Length(kMarginTop, Fixed));
75 second_style->setMarginBottom(Length(kMarginBottom, Fixed)); 75 second_style->setMarginBottom(Length(kMarginBottom, Fixed));
76 NGBlockNode* second_child = new NGBlockNode(second_style.get()); 76 NGBlockNode* second_child = new NGBlockNode(second_style.get());
77 77
78 first_child->SetNextSibling(second_child); 78 first_child->SetNextSibling(second_child);
79 79
80 auto* space = ConstructConstraintSpace( 80 auto* space = ConstructConstraintSpace(
81 HorizontalTopBottom, LTR, 81 kHorizontalTopBottom, LTR,
82 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite)); 82 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite));
83 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, first_child); 83 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, first_child);
84 84
85 EXPECT_EQ(LayoutUnit(kWidth), frag->Width()); 85 EXPECT_EQ(LayoutUnit(kWidth), frag->Width());
86 EXPECT_EQ(LayoutUnit(kHeight1 + kHeight2 + kMarginTop), frag->Height()); 86 EXPECT_EQ(LayoutUnit(kHeight1 + kHeight2 + kMarginTop), frag->Height());
87 EXPECT_EQ(NGPhysicalFragmentBase::FragmentBox, frag->Type()); 87 EXPECT_EQ(NGPhysicalFragmentBase::kFragmentBox, frag->Type());
88 ASSERT_EQ(frag->Children().size(), 2UL); 88 ASSERT_EQ(frag->Children().size(), 2UL);
89 89
90 const NGPhysicalFragmentBase* child = frag->Children()[0]; 90 const NGPhysicalFragmentBase* child = frag->Children()[0];
91 EXPECT_EQ(kHeight1, child->Height()); 91 EXPECT_EQ(kHeight1, child->Height());
92 EXPECT_EQ(0, child->TopOffset()); 92 EXPECT_EQ(0, child->TopOffset());
93 93
94 child = frag->Children()[1]; 94 child = frag->Children()[1];
95 EXPECT_EQ(kHeight2, child->Height()); 95 EXPECT_EQ(kHeight2, child->Height());
96 EXPECT_EQ(kHeight1 + kMarginTop, child->TopOffset()); 96 EXPECT_EQ(kHeight1 + kMarginTop, child->TopOffset());
97 } 97 }
(...skipping 19 matching lines...) Expand all
117 RefPtr<ComputedStyle> div2_style = ComputedStyle::create(); 117 RefPtr<ComputedStyle> div2_style = ComputedStyle::create();
118 div2_style->setHeight(Length(kHeight, Fixed)); 118 div2_style->setHeight(Length(kHeight, Fixed));
119 div2_style->setWidth(Length(kWidth, Fixed)); 119 div2_style->setWidth(Length(kWidth, Fixed));
120 div1_style->setWritingMode(TopToBottomWritingMode); 120 div1_style->setWritingMode(TopToBottomWritingMode);
121 div2_style->setMarginLeft(Length(kMarginLeft, Fixed)); 121 div2_style->setMarginLeft(Length(kMarginLeft, Fixed));
122 NGBlockNode* div2 = new NGBlockNode(div2_style.get()); 122 NGBlockNode* div2 = new NGBlockNode(div2_style.get());
123 123
124 div1->SetFirstChild(div2); 124 div1->SetFirstChild(div2);
125 125
126 auto* space = 126 auto* space =
127 ConstructConstraintSpace(HorizontalTopBottom, LTR, 127 ConstructConstraintSpace(kHorizontalTopBottom, LTR,
128 NGLogicalSize(LayoutUnit(500), LayoutUnit(500))); 128 NGLogicalSize(LayoutUnit(500), LayoutUnit(500)));
129 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1); 129 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1);
130 130
131 const NGPhysicalFragmentBase* child = frag->Children()[0]; 131 const NGPhysicalFragmentBase* child = frag->Children()[0];
132 // DIV2 132 // DIV2
133 child = static_cast<const NGPhysicalFragment*>(child)->Children()[0]; 133 child = static_cast<const NGPhysicalFragment*>(child)->Children()[0];
134 134
135 EXPECT_EQ(kHeight, child->Height()); 135 EXPECT_EQ(kHeight, child->Height());
136 EXPECT_EQ(0, child->TopOffset()); 136 EXPECT_EQ(0, child->TopOffset());
137 EXPECT_EQ(kMarginLeft, child->LeftOffset()); 137 EXPECT_EQ(kMarginLeft, child->LeftOffset());
(...skipping 23 matching lines...) Expand all
161 NGBlockNode* div1 = new NGBlockNode(div1_style.get()); 161 NGBlockNode* div1 = new NGBlockNode(div1_style.get());
162 162
163 // DIV2 163 // DIV2
164 RefPtr<ComputedStyle> div2_style = ComputedStyle::create(); 164 RefPtr<ComputedStyle> div2_style = ComputedStyle::create();
165 div2_style->setMarginTop(Length(kDiv2MarginTop, Fixed)); 165 div2_style->setMarginTop(Length(kDiv2MarginTop, Fixed));
166 NGBlockNode* div2 = new NGBlockNode(div2_style.get()); 166 NGBlockNode* div2 = new NGBlockNode(div2_style.get());
167 167
168 div1->SetFirstChild(div2); 168 div1->SetFirstChild(div2);
169 169
170 NGLogicalSize size(LayoutUnit(100), NGSizeIndefinite); 170 NGLogicalSize size(LayoutUnit(100), NGSizeIndefinite);
171 NGConstraintSpaceBuilder builder(HorizontalTopBottom); 171 NGConstraintSpaceBuilder builder(kHorizontalTopBottom);
172 builder.SetAvailableSize(size) 172 builder.SetAvailableSize(size)
173 .SetPercentageResolutionSize(size) 173 .SetPercentageResolutionSize(size)
174 .SetIsNewFormattingContext(true); 174 .SetIsNewFormattingContext(true);
175 auto* space = new NGConstraintSpace(HorizontalTopBottom, LTR, 175 auto* space = new NGConstraintSpace(kHorizontalTopBottom, LTR,
176 builder.ToConstraintSpace()); 176 builder.ToConstraintSpace());
177 177
178 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1); 178 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1);
179 179
180 EXPECT_TRUE(frag->MarginStrut().IsEmpty()); 180 EXPECT_TRUE(frag->MarginStrut().IsEmpty());
181 ASSERT_EQ(frag->Children().size(), 1UL); 181 ASSERT_EQ(frag->Children().size(), 1UL);
182 const NGPhysicalFragment* div2_fragment = 182 const NGPhysicalFragment* div2_fragment =
183 static_cast<const NGPhysicalFragment*>(frag->Children()[0].get()); 183 static_cast<const NGPhysicalFragment*>(frag->Children()[0].get());
184 EXPECT_EQ(NGMarginStrut({LayoutUnit(kDiv2MarginTop)}), 184 EXPECT_EQ(NGMarginStrut({LayoutUnit(kDiv2MarginTop)}),
185 div2_fragment->MarginStrut()); 185 div2_fragment->MarginStrut());
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 NGBlockNode* div7 = new NGBlockNode(div7_style.get()); 240 NGBlockNode* div7 = new NGBlockNode(div7_style.get());
241 241
242 div1->SetFirstChild(div2); 242 div1->SetFirstChild(div2);
243 div2->SetNextSibling(div3); 243 div2->SetNextSibling(div3);
244 div1->SetNextSibling(div4); 244 div1->SetNextSibling(div4);
245 div4->SetNextSibling(div5); 245 div4->SetNextSibling(div5);
246 div5->SetFirstChild(div6); 246 div5->SetFirstChild(div6);
247 div6->SetNextSibling(div7); 247 div6->SetNextSibling(div7);
248 248
249 auto* space = ConstructConstraintSpace( 249 auto* space = ConstructConstraintSpace(
250 HorizontalTopBottom, LTR, 250 kHorizontalTopBottom, LTR,
251 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite)); 251 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite));
252 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1); 252 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1);
253 253
254 ASSERT_EQ(frag->Children().size(), 3UL); 254 ASSERT_EQ(frag->Children().size(), 3UL);
255 255
256 // DIV1 256 // DIV1
257 const NGPhysicalFragmentBase* child = frag->Children()[0]; 257 const NGPhysicalFragmentBase* child = frag->Children()[0];
258 EXPECT_EQ(kHeight, child->Height()); 258 EXPECT_EQ(kHeight, child->Height());
259 EXPECT_EQ(0, child->TopOffset()); 259 EXPECT_EQ(0, child->TopOffset());
260 260
(...skipping 28 matching lines...) Expand all
289 289
290 // DIV2 290 // DIV2
291 RefPtr<ComputedStyle> div2_style = ComputedStyle::create(); 291 RefPtr<ComputedStyle> div2_style = ComputedStyle::create();
292 div2_style->setHeight(Length(kHeight, Fixed)); 292 div2_style->setHeight(Length(kHeight, Fixed));
293 div2_style->setMarginBottom(Length(kDiv2MarginBottom, Fixed)); 293 div2_style->setMarginBottom(Length(kDiv2MarginBottom, Fixed));
294 NGBlockNode* div2 = new NGBlockNode(div2_style.get()); 294 NGBlockNode* div2 = new NGBlockNode(div2_style.get());
295 295
296 div1->SetFirstChild(div2); 296 div1->SetFirstChild(div2);
297 297
298 auto* space = ConstructConstraintSpace( 298 auto* space = ConstructConstraintSpace(
299 HorizontalTopBottom, LTR, 299 kHorizontalTopBottom, LTR,
300 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite)); 300 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite));
301 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1); 301 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1);
302 302
303 // Verify that margins are collapsed. 303 // Verify that margins are collapsed.
304 EXPECT_EQ(NGMarginStrut({LayoutUnit(0), LayoutUnit(kDiv2MarginBottom)}), 304 EXPECT_EQ(NGMarginStrut({LayoutUnit(0), LayoutUnit(kDiv2MarginBottom)}),
305 frag->MarginStrut()); 305 frag->MarginStrut());
306 306
307 // Verify that margins are NOT collapsed. 307 // Verify that margins are NOT collapsed.
308 div1_style->setHeight(Length(kHeight, Fixed)); 308 div1_style->setHeight(Length(kHeight, Fixed));
309 frag = RunBlockLayoutAlgorithm(space, div1); 309 frag = RunBlockLayoutAlgorithm(space, div1);
(...skipping 28 matching lines...) Expand all
338 // DIV2 338 // DIV2
339 RefPtr<ComputedStyle> div2_style = ComputedStyle::create(); 339 RefPtr<ComputedStyle> div2_style = ComputedStyle::create();
340 div2_style->setHeight(Length(kHeight, Fixed)); 340 div2_style->setHeight(Length(kHeight, Fixed));
341 div2_style->setMarginTop(Length(kDiv2Margin, Fixed)); 341 div2_style->setMarginTop(Length(kDiv2Margin, Fixed));
342 div2_style->setMarginBottom(Length(kDiv2Margin, Fixed)); 342 div2_style->setMarginBottom(Length(kDiv2Margin, Fixed));
343 NGBlockNode* div2 = new NGBlockNode(div2_style.get()); 343 NGBlockNode* div2 = new NGBlockNode(div2_style.get());
344 344
345 div1->SetFirstChild(div2); 345 div1->SetFirstChild(div2);
346 346
347 auto* space = ConstructConstraintSpace( 347 auto* space = ConstructConstraintSpace(
348 HorizontalTopBottom, LTR, 348 kHorizontalTopBottom, LTR,
349 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite)); 349 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite));
350 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1); 350 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1);
351 351
352 // Verify that margins do NOT collapse. 352 // Verify that margins do NOT collapse.
353 frag = RunBlockLayoutAlgorithm(space, div1); 353 frag = RunBlockLayoutAlgorithm(space, div1);
354 EXPECT_EQ(NGMarginStrut({LayoutUnit(kDiv1Margin), LayoutUnit(kDiv1Margin)}), 354 EXPECT_EQ(NGMarginStrut({LayoutUnit(kDiv1Margin), LayoutUnit(kDiv1Margin)}),
355 frag->MarginStrut()); 355 frag->MarginStrut());
356 ASSERT_EQ(frag->Children().size(), 1UL); 356 ASSERT_EQ(frag->Children().size(), 1UL);
357 357
358 EXPECT_EQ(NGMarginStrut({LayoutUnit(kDiv2Margin), LayoutUnit(kDiv2Margin)}), 358 EXPECT_EQ(NGMarginStrut({LayoutUnit(kDiv2Margin), LayoutUnit(kDiv2Margin)}),
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 394
395 // Horizontal DIV 395 // Horizontal DIV
396 RefPtr<ComputedStyle> horizontal_style = ComputedStyle::create(); 396 RefPtr<ComputedStyle> horizontal_style = ComputedStyle::create();
397 horizontal_style->setMarginLeft(Length(kHorizontalDivMarginLeft, Fixed)); 397 horizontal_style->setMarginLeft(Length(kHorizontalDivMarginLeft, Fixed));
398 horizontal_style->setWritingMode(TopToBottomWritingMode); 398 horizontal_style->setWritingMode(TopToBottomWritingMode);
399 NGBlockNode* horizontal_div = new NGBlockNode(horizontal_style.get()); 399 NGBlockNode* horizontal_div = new NGBlockNode(horizontal_style.get());
400 400
401 vertical_div->SetNextSibling(horizontal_div); 401 vertical_div->SetNextSibling(horizontal_div);
402 402
403 auto* space = ConstructConstraintSpace( 403 auto* space = ConstructConstraintSpace(
404 VerticalLeftRight, LTR, NGLogicalSize(LayoutUnit(500), LayoutUnit(500))); 404 kVerticalLeftRight, LTR, NGLogicalSize(LayoutUnit(500), LayoutUnit(500)));
405 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, vertical_div); 405 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, vertical_div);
406 406
407 ASSERT_EQ(frag->Children().size(), 2UL); 407 ASSERT_EQ(frag->Children().size(), 2UL);
408 const NGPhysicalFragmentBase* child = frag->Children()[1]; 408 const NGPhysicalFragmentBase* child = frag->Children()[1];
409 // Horizontal div 409 // Horizontal div
410 EXPECT_EQ(0, child->TopOffset()); 410 EXPECT_EQ(0, child->TopOffset());
411 EXPECT_EQ(kVerticalDivWidth + kHorizontalDivMarginLeft, child->LeftOffset()); 411 EXPECT_EQ(kVerticalDivWidth + kHorizontalDivMarginLeft, child->LeftOffset());
412 } 412 }
413 413
414 // Verifies that the margin strut of a child with a different writing mode does 414 // Verifies that the margin strut of a child with a different writing mode does
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 // DIV3 451 // DIV3
452 RefPtr<ComputedStyle> div3_style = ComputedStyle::create(); 452 RefPtr<ComputedStyle> div3_style = ComputedStyle::create();
453 div3_style->setHeight(Length(kHeight, Fixed)); 453 div3_style->setHeight(Length(kHeight, Fixed));
454 div3_style->setMarginTop(Length(kMarginTop, Fixed)); 454 div3_style->setMarginTop(Length(kMarginTop, Fixed));
455 NGBlockNode* div3 = new NGBlockNode(div3_style.get()); 455 NGBlockNode* div3 = new NGBlockNode(div3_style.get());
456 456
457 div1->SetFirstChild(div2); 457 div1->SetFirstChild(div2);
458 div1->SetNextSibling(div3); 458 div1->SetNextSibling(div3);
459 459
460 auto* space = 460 auto* space =
461 ConstructConstraintSpace(HorizontalTopBottom, LTR, 461 ConstructConstraintSpace(kHorizontalTopBottom, LTR,
462 NGLogicalSize(LayoutUnit(500), LayoutUnit(500))); 462 NGLogicalSize(LayoutUnit(500), LayoutUnit(500)));
463 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1); 463 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1);
464 464
465 ASSERT_EQ(frag->Children().size(), 2UL); 465 ASSERT_EQ(frag->Children().size(), 2UL);
466 466
467 const NGPhysicalFragmentBase* child1 = frag->Children()[0]; 467 const NGPhysicalFragmentBase* child1 = frag->Children()[0];
468 EXPECT_EQ(0, child1->TopOffset()); 468 EXPECT_EQ(0, child1->TopOffset());
469 EXPECT_EQ(kHeight, child1->Height()); 469 EXPECT_EQ(kHeight, child1->Height());
470 470
471 const NGPhysicalFragmentBase* child2 = frag->Children()[1]; 471 const NGPhysicalFragmentBase* child2 = frag->Children()[1];
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 div1_style->setPaddingBottom(Length(kPaddingBottom, Fixed)); 514 div1_style->setPaddingBottom(Length(kPaddingBottom, Fixed));
515 div1_style->setPaddingLeft(Length(kPaddingLeft, Fixed)); 515 div1_style->setPaddingLeft(Length(kPaddingLeft, Fixed));
516 NGBlockNode* div1 = new NGBlockNode(div1_style.get()); 516 NGBlockNode* div1 = new NGBlockNode(div1_style.get());
517 517
518 RefPtr<ComputedStyle> div2_style = ComputedStyle::create(); 518 RefPtr<ComputedStyle> div2_style = ComputedStyle::create();
519 NGBlockNode* div2 = new NGBlockNode(div2_style.get()); 519 NGBlockNode* div2 = new NGBlockNode(div2_style.get());
520 520
521 div1->SetFirstChild(div2); 521 div1->SetFirstChild(div2);
522 522
523 auto* space = ConstructConstraintSpace( 523 auto* space = ConstructConstraintSpace(
524 HorizontalTopBottom, LTR, 524 kHorizontalTopBottom, LTR,
525 NGLogicalSize(LayoutUnit(1000), NGSizeIndefinite)); 525 NGLogicalSize(LayoutUnit(1000), NGSizeIndefinite));
526 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1); 526 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1);
527 527
528 ASSERT_EQ(frag->Children().size(), 1UL); 528 ASSERT_EQ(frag->Children().size(), 1UL);
529 529
530 // div1 530 // div1
531 const NGPhysicalFragmentBase* child = frag->Children()[0]; 531 const NGPhysicalFragmentBase* child = frag->Children()[0];
532 EXPECT_EQ(kBorderLeft + kPaddingLeft + kWidth + kPaddingRight + kBorderRight, 532 EXPECT_EQ(kBorderLeft + kPaddingLeft + kWidth + kPaddingRight + kBorderRight,
533 child->Width()); 533 child->Width());
534 EXPECT_EQ(kBorderTop + kPaddingTop + kHeight + kPaddingBottom + kBorderBottom, 534 EXPECT_EQ(kBorderTop + kPaddingTop + kHeight + kPaddingBottom + kBorderBottom,
535 child->Height()); 535 child->Height());
536 536
537 ASSERT_TRUE(child->Type() == NGPhysicalFragmentBase::FragmentBox); 537 ASSERT_TRUE(child->Type() == NGPhysicalFragmentBase::kFragmentBox);
538 ASSERT_EQ(static_cast<const NGPhysicalFragment*>(child)->Children().size(), 538 ASSERT_EQ(static_cast<const NGPhysicalFragment*>(child)->Children().size(),
539 1UL); 539 1UL);
540 540
541 // div2 541 // div2
542 child = static_cast<const NGPhysicalFragment*>(child)->Children()[0]; 542 child = static_cast<const NGPhysicalFragment*>(child)->Children()[0];
543 EXPECT_EQ(kBorderTop + kPaddingTop, child->TopOffset()); 543 EXPECT_EQ(kBorderTop + kPaddingTop, child->TopOffset());
544 EXPECT_EQ(kBorderLeft + kPaddingLeft, child->LeftOffset()); 544 EXPECT_EQ(kBorderLeft + kPaddingLeft, child->LeftOffset());
545 } 545 }
546 546
547 TEST_F(NGBlockLayoutAlgorithmTest, PercentageResolutionSize) { 547 TEST_F(NGBlockLayoutAlgorithmTest, PercentageResolutionSize) {
548 const int kPaddingLeft = 10; 548 const int kPaddingLeft = 10;
549 const int kWidth = 30; 549 const int kWidth = 30;
550 style_->setWidth(Length(kWidth, Fixed)); 550 style_->setWidth(Length(kWidth, Fixed));
551 style_->setPaddingLeft(Length(kPaddingLeft, Fixed)); 551 style_->setPaddingLeft(Length(kPaddingLeft, Fixed));
552 552
553 RefPtr<ComputedStyle> first_style = ComputedStyle::create(); 553 RefPtr<ComputedStyle> first_style = ComputedStyle::create();
554 first_style->setWidth(Length(40, Percent)); 554 first_style->setWidth(Length(40, Percent));
555 NGBlockNode* first_child = new NGBlockNode(first_style.get()); 555 NGBlockNode* first_child = new NGBlockNode(first_style.get());
556 556
557 auto* space = ConstructConstraintSpace( 557 auto* space = ConstructConstraintSpace(
558 HorizontalTopBottom, LTR, 558 kHorizontalTopBottom, LTR,
559 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite)); 559 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite));
560 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, first_child); 560 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, first_child);
561 561
562 EXPECT_EQ(LayoutUnit(kWidth + kPaddingLeft), frag->Width()); 562 EXPECT_EQ(LayoutUnit(kWidth + kPaddingLeft), frag->Width());
563 EXPECT_EQ(NGPhysicalFragmentBase::FragmentBox, frag->Type()); 563 EXPECT_EQ(NGPhysicalFragmentBase::kFragmentBox, frag->Type());
564 ASSERT_EQ(frag->Children().size(), 1UL); 564 ASSERT_EQ(frag->Children().size(), 1UL);
565 565
566 const NGPhysicalFragmentBase* child = frag->Children()[0]; 566 const NGPhysicalFragmentBase* child = frag->Children()[0];
567 EXPECT_EQ(LayoutUnit(12), child->Width()); 567 EXPECT_EQ(LayoutUnit(12), child->Width());
568 } 568 }
569 569
570 // A very simple auto margin case. We rely on the tests in ng_length_utils_test 570 // A very simple auto margin case. We rely on the tests in ng_length_utils_test
571 // for the more complex cases; just make sure we handle auto at all here. 571 // for the more complex cases; just make sure we handle auto at all here.
572 TEST_F(NGBlockLayoutAlgorithmTest, AutoMargin) { 572 TEST_F(NGBlockLayoutAlgorithmTest, AutoMargin) {
573 const int kPaddingLeft = 10; 573 const int kPaddingLeft = 10;
574 const int kWidth = 30; 574 const int kWidth = 30;
575 style_->setWidth(Length(kWidth, Fixed)); 575 style_->setWidth(Length(kWidth, Fixed));
576 style_->setPaddingLeft(Length(kPaddingLeft, Fixed)); 576 style_->setPaddingLeft(Length(kPaddingLeft, Fixed));
577 577
578 RefPtr<ComputedStyle> first_style = ComputedStyle::create(); 578 RefPtr<ComputedStyle> first_style = ComputedStyle::create();
579 const int kChildWidth = 10; 579 const int kChildWidth = 10;
580 first_style->setWidth(Length(kChildWidth, Fixed)); 580 first_style->setWidth(Length(kChildWidth, Fixed));
581 first_style->setMarginLeft(Length(Auto)); 581 first_style->setMarginLeft(Length(Auto));
582 first_style->setMarginRight(Length(Auto)); 582 first_style->setMarginRight(Length(Auto));
583 NGBlockNode* first_child = new NGBlockNode(first_style.get()); 583 NGBlockNode* first_child = new NGBlockNode(first_style.get());
584 584
585 auto* space = ConstructConstraintSpace( 585 auto* space = ConstructConstraintSpace(
586 HorizontalTopBottom, LTR, 586 kHorizontalTopBottom, LTR,
587 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite)); 587 NGLogicalSize(LayoutUnit(100), NGSizeIndefinite));
588 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, first_child); 588 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, first_child);
589 589
590 EXPECT_EQ(LayoutUnit(kWidth + kPaddingLeft), frag->Width()); 590 EXPECT_EQ(LayoutUnit(kWidth + kPaddingLeft), frag->Width());
591 EXPECT_EQ(NGPhysicalFragmentBase::FragmentBox, frag->Type()); 591 EXPECT_EQ(NGPhysicalFragmentBase::kFragmentBox, frag->Type());
592 EXPECT_EQ(LayoutUnit(kWidth + kPaddingLeft), frag->WidthOverflow()); 592 EXPECT_EQ(LayoutUnit(kWidth + kPaddingLeft), frag->WidthOverflow());
593 ASSERT_EQ(1UL, frag->Children().size()); 593 ASSERT_EQ(1UL, frag->Children().size());
594 594
595 const NGPhysicalFragmentBase* child = frag->Children()[0]; 595 const NGPhysicalFragmentBase* child = frag->Children()[0];
596 EXPECT_EQ(LayoutUnit(kChildWidth), child->Width()); 596 EXPECT_EQ(LayoutUnit(kChildWidth), child->Width());
597 EXPECT_EQ(LayoutUnit(kPaddingLeft + 10), child->LeftOffset()); 597 EXPECT_EQ(LayoutUnit(kPaddingLeft + 10), child->LeftOffset());
598 EXPECT_EQ(LayoutUnit(0), child->TopOffset()); 598 EXPECT_EQ(LayoutUnit(0), child->TopOffset());
599 } 599 }
600 600
601 // Verifies that 3 Left/Right float fragments and one regular block fragment 601 // Verifies that 3 Left/Right float fragments and one regular block fragment
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 div4_style->setHeight(Length(kDiv4Size, Fixed)); 657 div4_style->setHeight(Length(kDiv4Size, Fixed));
658 div4_style->setMarginLeft(Length(kDiv4LeftMargin, Fixed)); 658 div4_style->setMarginLeft(Length(kDiv4LeftMargin, Fixed));
659 div4_style->setFloating(EFloat::Left); 659 div4_style->setFloating(EFloat::Left);
660 NGBlockNode* div4 = new NGBlockNode(div4_style.get()); 660 NGBlockNode* div4 = new NGBlockNode(div4_style.get());
661 661
662 div1->SetNextSibling(div2); 662 div1->SetNextSibling(div2);
663 div2->SetNextSibling(div3); 663 div2->SetNextSibling(div3);
664 div3->SetNextSibling(div4); 664 div3->SetNextSibling(div4);
665 665
666 auto* space = ConstructConstraintSpace( 666 auto* space = ConstructConstraintSpace(
667 HorizontalTopBottom, LTR, 667 kHorizontalTopBottom, LTR,
668 NGLogicalSize(LayoutUnit(kParentSize), LayoutUnit(kParentSize))); 668 NGLogicalSize(LayoutUnit(kParentSize), LayoutUnit(kParentSize)));
669 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1); 669 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1);
670 ASSERT_EQ(frag->Children().size(), 4UL); 670 ASSERT_EQ(frag->Children().size(), 4UL);
671 671
672 // DIV1 672 // DIV1
673 const NGPhysicalFragmentBase* child1 = frag->Children()[0]; 673 const NGPhysicalFragmentBase* child1 = frag->Children()[0];
674 EXPECT_EQ(kDiv1TopMargin, child1->TopOffset()); 674 EXPECT_EQ(kDiv1TopMargin, child1->TopOffset());
675 EXPECT_EQ(kParentLeftPadding, child1->LeftOffset()); 675 EXPECT_EQ(kParentLeftPadding, child1->LeftOffset());
676 676
677 // DIV2 677 // DIV2
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
734 div3_style->setWidth(Length(kDiv3Size, Fixed)); 734 div3_style->setWidth(Length(kDiv3Size, Fixed));
735 div3_style->setHeight(Length(kDiv3Size, Fixed)); 735 div3_style->setHeight(Length(kDiv3Size, Fixed));
736 NGBlockNode* div3 = new NGBlockNode(div3_style.get()); 736 NGBlockNode* div3 = new NGBlockNode(div3_style.get());
737 737
738 div1->SetNextSibling(div2); 738 div1->SetNextSibling(div2);
739 div2->SetNextSibling(div3); 739 div2->SetNextSibling(div3);
740 740
741 // clear: left; 741 // clear: left;
742 div3_style->setClear(EClear::ClearLeft); 742 div3_style->setClear(EClear::ClearLeft);
743 auto* space = ConstructConstraintSpace( 743 auto* space = ConstructConstraintSpace(
744 HorizontalTopBottom, LTR, 744 kHorizontalTopBottom, LTR,
745 NGLogicalSize(LayoutUnit(kParentSize), LayoutUnit(kParentSize))); 745 NGLogicalSize(LayoutUnit(kParentSize), LayoutUnit(kParentSize)));
746 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1); 746 NGPhysicalFragment* frag = RunBlockLayoutAlgorithm(space, div1);
747 const NGPhysicalFragmentBase* child3 = frag->Children()[2]; 747 const NGPhysicalFragmentBase* child3 = frag->Children()[2];
748 EXPECT_EQ(kDiv1Size, child3->TopOffset()); 748 EXPECT_EQ(kDiv1Size, child3->TopOffset());
749 749
750 // clear: right; 750 // clear: right;
751 div3_style->setClear(EClear::ClearRight); 751 div3_style->setClear(EClear::ClearRight);
752 space = ConstructConstraintSpace( 752 space = ConstructConstraintSpace(
753 HorizontalTopBottom, LTR, 753 kHorizontalTopBottom, LTR,
754 NGLogicalSize(LayoutUnit(kParentSize), LayoutUnit(kParentSize))); 754 NGLogicalSize(LayoutUnit(kParentSize), LayoutUnit(kParentSize)));
755 frag = RunBlockLayoutAlgorithm(space, div1); 755 frag = RunBlockLayoutAlgorithm(space, div1);
756 child3 = frag->Children()[2]; 756 child3 = frag->Children()[2];
757 EXPECT_EQ(kDiv1Size + kDiv2Size, child3->TopOffset()); 757 EXPECT_EQ(kDiv1Size + kDiv2Size, child3->TopOffset());
758 758
759 // clear: both; 759 // clear: both;
760 div3_style->setClear(EClear::ClearBoth); 760 div3_style->setClear(EClear::ClearBoth);
761 space = ConstructConstraintSpace( 761 space = ConstructConstraintSpace(
762 HorizontalTopBottom, LTR, 762 kHorizontalTopBottom, LTR,
763 NGLogicalSize(LayoutUnit(kParentSize), LayoutUnit(kParentSize))); 763 NGLogicalSize(LayoutUnit(kParentSize), LayoutUnit(kParentSize)));
764 frag = RunBlockLayoutAlgorithm(space, div1); 764 frag = RunBlockLayoutAlgorithm(space, div1);
765 space = ConstructConstraintSpace( 765 space = ConstructConstraintSpace(
766 HorizontalTopBottom, LTR, 766 kHorizontalTopBottom, LTR,
767 NGLogicalSize(LayoutUnit(kParentSize), LayoutUnit(kParentSize))); 767 NGLogicalSize(LayoutUnit(kParentSize), LayoutUnit(kParentSize)));
768 child3 = frag->Children()[2]; 768 child3 = frag->Children()[2];
769 EXPECT_EQ(kDiv1Size + kDiv2Size, child3->TopOffset()); 769 EXPECT_EQ(kDiv1Size + kDiv2Size, child3->TopOffset());
770 } 770 }
771 771
772 } // namespace 772 } // namespace
773 } // namespace blink 773 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698