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

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

Issue 2815003006: [LayoutNG] Handle floats/OOF at the beginning of inline in inline context (Closed)
Patch Set: Resolve merge conflict 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 unified diff | Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/ng/ng_block_node.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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_base_layout_algorithm_test.h" 5 #include "core/layout/ng/ng_base_layout_algorithm_test.h"
6 6
7 #include "core/dom/TagCollection.h" 7 #include "core/dom/TagCollection.h"
8 #include "core/layout/line/InlineTextBox.h" 8 #include "core/layout/line/InlineTextBox.h"
9 #include "core/layout/ng/inline/ng_inline_node.h" 9 #include "core/layout/ng/inline/ng_inline_node.h"
10 #include "core/layout/ng/inline/ng_physical_line_box_fragment.h" 10 #include "core/layout/ng/inline/ng_physical_line_box_fragment.h"
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 auto* line_box = ToNGPhysicalLineBoxFragment(child.Get()); 126 auto* line_box = ToNGPhysicalLineBoxFragment(child.Get());
127 EXPECT_EQ(1u, line_box->Children().size()); 127 EXPECT_EQ(1u, line_box->Children().size());
128 for (const auto& text : line_box->Children()) 128 for (const auto& text : line_box->Children())
129 text_fragments.push_back(ToNGPhysicalTextFragment(text.Get())); 129 text_fragments.push_back(ToNGPhysicalTextFragment(text.Get()));
130 } 130 }
131 131
132 LayoutText* layout_text = 132 LayoutText* layout_text =
133 ToLayoutText(GetLayoutObjectByElementId("text")->SlowFirstChild()); 133 ToLayoutText(GetLayoutObjectByElementId("text")->SlowFirstChild());
134 DCHECK(layout_text->HasTextBoxes()); 134 DCHECK(layout_text->HasTextBoxes());
135 135
136 ASSERT_EQ(4UL, text_fragments.size()); 136 // Line break points may vary by minor differences in fonts.
137 // The test is valid as long as we have 3 or more lines and their positions
138 // are correct.
139 EXPECT_GE(text_fragments.size(), 3UL);
137 140
138 auto* text_fragment1 = text_fragments[0]; 141 auto* text_fragment1 = text_fragments[0];
139 // 40 = #left-float1' width 30 + #left-float2 10 142 // 40 = #left-float1' width 30 + #left-float2 10
140 EXPECT_EQ(LayoutUnit(40), text_fragment1->LeftOffset()); 143 EXPECT_EQ(LayoutUnit(40), text_fragment1->LeftOffset());
141 EXPECT_EQ("The quick ", text_fragment1->Text());
142 InlineTextBox* inline_text_box1 = layout_text->FirstTextBox(); 144 InlineTextBox* inline_text_box1 = layout_text->FirstTextBox();
143 EXPECT_EQ(LayoutUnit(40), inline_text_box1->X()); 145 EXPECT_EQ(LayoutUnit(40), inline_text_box1->X());
144 146
145 auto* text_fragment2 = text_fragments[1]; 147 auto* text_fragment2 = text_fragments[1];
146 // 40 = #left-float1' width 30 148 // 40 = #left-float1' width 30
147 EXPECT_EQ(LayoutUnit(30), text_fragment2->LeftOffset()); 149 EXPECT_EQ(LayoutUnit(30), text_fragment2->LeftOffset());
148 EXPECT_EQ("brown fox ", text_fragment2->Text());
149 InlineTextBox* inline_text_box2 = inline_text_box1->NextTextBox(); 150 InlineTextBox* inline_text_box2 = inline_text_box1->NextTextBox();
150 EXPECT_EQ(LayoutUnit(30), inline_text_box2->X()); 151 EXPECT_EQ(LayoutUnit(30), inline_text_box2->X());
151 152
152 auto* text_fragment3 = text_fragments[2]; 153 auto* text_fragment3 = text_fragments[2];
153 EXPECT_EQ(LayoutUnit(), text_fragment3->LeftOffset()); 154 EXPECT_EQ(LayoutUnit(), text_fragment3->LeftOffset());
154 EXPECT_EQ("jumps over the lazy ", text_fragment3->Text());
155 InlineTextBox* inline_text_box3 = inline_text_box2->NextTextBox(); 155 InlineTextBox* inline_text_box3 = inline_text_box2->NextTextBox();
156 EXPECT_EQ(LayoutUnit(), inline_text_box3->X()); 156 EXPECT_EQ(LayoutUnit(), inline_text_box3->X());
157 } 157 }
158 158
159 // Verifies that text correctly flows around the inline float that fits on 159 // Verifies that text correctly flows around the inline float that fits on
160 // the same text line. 160 // the same text line.
161 TEST_F(NGInlineLayoutAlgorithmTest, TextFloatsAroundInlineFloatThatFitsOnLine) { 161 TEST_F(NGInlineLayoutAlgorithmTest, TextFloatsAroundInlineFloatThatFitsOnLine) {
162 SetBodyInnerHTML(R"HTML( 162 SetBodyInnerHTML(R"HTML(
163 <!DOCTYPE html> 163 <!DOCTYPE html>
164 <style> 164 <style>
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 ToLayoutText(GetLayoutObjectByElementId("text")->SlowFirstChild()); 294 ToLayoutText(GetLayoutObjectByElementId("text")->SlowFirstChild());
295 DCHECK(layout_text->HasTextBoxes()); 295 DCHECK(layout_text->HasTextBoxes());
296 296
297 InlineTextBox* inline_text_box1 = layout_text->FirstTextBox(); 297 InlineTextBox* inline_text_box1 = layout_text->FirstTextBox();
298 // 45 = sum of left's inline margins: 40 + left's width: 5 298 // 45 = sum of left's inline margins: 40 + left's width: 5
299 EXPECT_EQ(LayoutUnit(45), inline_text_box1->X()); 299 EXPECT_EQ(LayoutUnit(45), inline_text_box1->X());
300 } 300 }
301 301
302 } // namespace 302 } // namespace
303 } // namespace blink 303 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/ng/ng_block_node.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698