| Index: third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm_test.cc
 | 
| diff --git a/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm_test.cc b/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm_test.cc
 | 
| similarity index 70%
 | 
| rename from third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm_test.cc
 | 
| rename to third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm_test.cc
 | 
| index 9db02e121b6d550a73c5a7a6e9dfd0bfb3ae7bd6..3fe5ddcba1540a994e4d1bc832a860e435bcd2b4 100644
 | 
| --- a/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm_test.cc
 | 
| +++ b/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm_test.cc
 | 
| @@ -6,6 +6,9 @@
 | 
|  
 | 
|  #include "core/dom/TagCollection.h"
 | 
|  #include "core/layout/line/InlineTextBox.h"
 | 
| +#include "core/layout/ng/layout_ng_block_flow.h"
 | 
| +#include "core/layout/ng/ng_block_break_token.h"
 | 
| +#include "core/layout/ng/ng_constraint_space_builder.h"
 | 
|  #include "core/layout/ng/ng_inline_node.h"
 | 
|  #include "core/layout/ng/ng_physical_line_box_fragment.h"
 | 
|  #include "core/layout/ng/ng_physical_text_fragment.h"
 | 
| @@ -15,11 +18,70 @@
 | 
|  namespace blink {
 | 
|  namespace {
 | 
|  
 | 
| -class NGTextLayoutAlgorithmTest : public NGBaseLayoutAlgorithmTest {};
 | 
| +class NGInlineLayoutAlgorithmTest : public NGBaseLayoutAlgorithmTest {};
 | 
| +
 | 
| +TEST_F(NGInlineLayoutAlgorithmTest, BreakToken) {
 | 
| +  loadAhem();
 | 
| +  setBodyInnerHTML(R"HTML(
 | 
| +    <!DOCTYPE html>
 | 
| +    <style>
 | 
| +      html {
 | 
| +        font: 10px/1 Ahem;
 | 
| +      }
 | 
| +      #container {
 | 
| +        width: 50px; height: 20px;
 | 
| +      }
 | 
| +    </style>
 | 
| +    <div id=container>123 456 789</div>
 | 
| +  )HTML");
 | 
| +
 | 
| +  // Perform 1st Layout.
 | 
| +  LayoutNGBlockFlow* block_flow =
 | 
| +      toLayoutNGBlockFlow(getLayoutObjectByElementId("container"));
 | 
| +  NGInlineNode* inline_node =
 | 
| +      new NGInlineNode(block_flow->firstChild(), block_flow);
 | 
| +  RefPtr<NGConstraintSpace> constraint_space =
 | 
| +      NGConstraintSpaceBuilder(NGWritingMode::kHorizontalTopBottom)
 | 
| +          .SetAvailableSize({LayoutUnit(50), LayoutUnit(20)})
 | 
| +          .ToConstraintSpace(NGWritingMode::kHorizontalTopBottom);
 | 
| +  RefPtr<NGLayoutResult> layout_result =
 | 
| +      inline_node->Layout(constraint_space.get(), nullptr);
 | 
| +  auto* wrapper =
 | 
| +      toNGPhysicalBoxFragment(layout_result->PhysicalFragment().get());
 | 
| +
 | 
| +  // Test that the anonymous wrapper has 2 line boxes, and both have unfinished
 | 
| +  // break tokens.
 | 
| +  EXPECT_EQ(2u, wrapper->Children().size());
 | 
| +  auto* line1 = toNGPhysicalLineBoxFragment(wrapper->Children()[0].get());
 | 
| +  EXPECT_FALSE(line1->BreakToken()->IsFinished());
 | 
| +  auto* line2 = toNGPhysicalLineBoxFragment(wrapper->Children()[1].get());
 | 
| +  EXPECT_FALSE(line2->BreakToken()->IsFinished());
 | 
| +
 | 
| +  // Test that the wrapper has the break token from the last line as its child.
 | 
| +  auto* wrapper_break_token = toNGBlockBreakToken(wrapper->BreakToken());
 | 
| +  EXPECT_EQ(wrapper_break_token->ChildBreakTokens()[0], line2->BreakToken());
 | 
| +  EXPECT_FALSE(wrapper_break_token->IsFinished());
 | 
| +
 | 
| +  // Perform 2nd layout with the break token from the 2nd line.
 | 
| +  RefPtr<NGLayoutResult> layout_result2 =
 | 
| +      inline_node->Layout(constraint_space.get(), line2->BreakToken());
 | 
| +  auto* wrapper2 =
 | 
| +      toNGPhysicalBoxFragment(layout_result2->PhysicalFragment().get());
 | 
| +
 | 
| +  // Test that the anonymous wrapper has 1 line boxes, and has a finished break
 | 
| +  // token.
 | 
| +  EXPECT_EQ(1u, wrapper2->Children().size());
 | 
| +  auto* line3 = toNGPhysicalLineBoxFragment(wrapper2->Children()[0].get());
 | 
| +  EXPECT_TRUE(line3->BreakToken()->IsFinished());
 | 
| +
 | 
| +  // Test that the wrapper has the break token without children.
 | 
| +  auto* wrapper2_break_token = toNGBlockBreakToken(wrapper2->BreakToken());
 | 
| +  EXPECT_EQ(0u, wrapper2_break_token->ChildBreakTokens().size());
 | 
| +}
 | 
|  
 | 
|  // Verifies that text can flow correctly around floats that were positioned
 | 
|  // before the inline block.
 | 
| -TEST_F(NGTextLayoutAlgorithmTest, TextFloatsAroundFloatsBefore) {
 | 
| +TEST_F(NGInlineLayoutAlgorithmTest, TextFloatsAroundFloatsBefore) {
 | 
|    setBodyInnerHTML(R"HTML(
 | 
|      <!DOCTYPE html>
 | 
|      <style>
 | 
| @@ -96,7 +158,7 @@ TEST_F(NGTextLayoutAlgorithmTest, TextFloatsAroundFloatsBefore) {
 | 
|  
 | 
|  // Verifies that text correctly flows around the inline float that fits on
 | 
|  // the same text line.
 | 
| -TEST_F(NGTextLayoutAlgorithmTest, TextFloatsAroundInlineFloatThatFitsOnLine) {
 | 
| +TEST_F(NGInlineLayoutAlgorithmTest, TextFloatsAroundInlineFloatThatFitsOnLine) {
 | 
|    setBodyInnerHTML(R"HTML(
 | 
|      <!DOCTYPE html>
 | 
|      <style>
 | 
| @@ -133,7 +195,7 @@ TEST_F(NGTextLayoutAlgorithmTest, TextFloatsAroundInlineFloatThatFitsOnLine) {
 | 
|  
 | 
|  // Verifies that the inline float got pushed to the next line if it doesn't
 | 
|  // fit the current line.
 | 
| -TEST_F(NGTextLayoutAlgorithmTest,
 | 
| +TEST_F(NGInlineLayoutAlgorithmTest,
 | 
|         TextFloatsAroundInlineFloatThatDoesNotFitOnLine) {
 | 
|    setBodyInnerHTML(R"HTML(
 | 
|      <!DOCTYPE html>
 | 
| @@ -170,7 +232,7 @@ TEST_F(NGTextLayoutAlgorithmTest,
 | 
|  // Verifies that if an inline float pushed to the next line then all others
 | 
|  // following inline floats positioned with respect to the float's top edge
 | 
|  // alignment rule.
 | 
| -TEST_F(NGTextLayoutAlgorithmTest,
 | 
| +TEST_F(NGInlineLayoutAlgorithmTest,
 | 
|         FloatsArePositionedWithRespectToTopEdgeAlignmentRule) {
 | 
|    setBodyInnerHTML(R"HTML(
 | 
|      <!DOCTYPE html>
 | 
| 
 |