| Index: third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
|
| diff --git a/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc b/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
|
| index 2568b2c89c1da8751a37afd83551a26eaebd3b9a..031605191cb1e817ebb66c6e576b8f3b5890cdeb 100644
|
| --- a/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
|
| +++ b/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "core/layout/ng/ng_inline_node.h"
|
|
|
| +#include "core/layout/LayoutTestHelper.h"
|
| #include "core/layout/ng/ng_constraint_space.h"
|
| #include "core/layout/ng/ng_constraint_space_builder.h"
|
| #include "core/layout/ng/ng_fragment_builder.h"
|
| @@ -54,15 +55,27 @@ class NGInlineNodeForTest : public NGInlineNode {
|
| is_bidi_enabled_ = true;
|
| NGInlineNode::SegmentText();
|
| }
|
| +
|
| + using NGInlineNode::ShapeText;
|
| };
|
|
|
| -class NGInlineNodeTest : public ::testing::Test {
|
| +class NGInlineNodeTest : public RenderingTest {
|
| protected:
|
| void SetUp() override {
|
| + RenderingTest::SetUp();
|
| style_ = ComputedStyle::create();
|
| style_->font().update(nullptr);
|
| }
|
|
|
| + void setAhemToStyle() {
|
| + // Get Ahem from document. Loading "Ahem.woff" using |createTestFont| fails
|
| + // on linux_chromium_asan_rel_ng.
|
| + loadAhem();
|
| + setBodyInnerHTML("<div id=t style='font:10px Ahem'></div>");
|
| + LayoutObject* layout_object = getLayoutObjectByElementId("t");
|
| + style_->setFont(layout_object->style()->font());
|
| + }
|
| +
|
| void CreateLine(NGInlineNode* node,
|
| Vector<RefPtr<const NGPhysicalTextFragment>>* fragments_out) {
|
| NGConstraintSpace* constraint_space =
|
| @@ -191,6 +204,7 @@ TEST_F(NGInlineNodeTest, SegmentBidiIsolate) {
|
| TEST_F(NGInlineNodeTest, CreateLineBidiIsolate) {
|
| RefPtr<ComputedStyle> style = ComputedStyle::create();
|
| style->setLineHeight(Length(1, Fixed));
|
| + style->font().update(nullptr);
|
| NGInlineNodeForTest* node = CreateBidiIsolateNode(style.get());
|
| Vector<RefPtr<const NGPhysicalTextFragment>> fragments;
|
| CreateLine(node, &fragments);
|
| @@ -202,4 +216,31 @@ TEST_F(NGInlineNodeTest, CreateLineBidiIsolate) {
|
| TEST_TEXT_FRAGMENT(fragments[4], node, 8u, 22u, 28u, TextDirection::kLtr);
|
| }
|
|
|
| +TEST_F(NGInlineNodeTest, MinAndMaxContentSizes) {
|
| + setAhemToStyle();
|
| + NGInlineNodeForTest* node = new NGInlineNodeForTest(style_.get());
|
| + node->Append("AB CDE", style_.get());
|
| + node->ShapeText();
|
| + MinAndMaxContentSizes sizes = node->ComputeMinAndMaxContentSizes();
|
| + // TODO(kojii): min_content should be 20, but is 30 until NGLineBuilder
|
| + // implements trailing spaces correctly.
|
| + EXPECT_EQ(30, sizes.min_content);
|
| + EXPECT_EQ(60, sizes.max_content);
|
| +}
|
| +
|
| +TEST_F(NGInlineNodeTest, MinAndMaxContentSizesElementBoundary) {
|
| + setAhemToStyle();
|
| + NGInlineNodeForTest* node = new NGInlineNodeForTest(style_.get());
|
| + node->Append("A B", style_.get());
|
| + node->Append("C D", style_.get());
|
| + node->ShapeText();
|
| + MinAndMaxContentSizes sizes = node->ComputeMinAndMaxContentSizes();
|
| + // |min_content| should be the width of "BC" because there is an element
|
| + // boundary between "B" and "C" but no break opportunities.
|
| + // TODO(kojii): min_content should be 20, but is 30 until NGLineBuilder
|
| + // implements trailing spaces correctly.
|
| + EXPECT_EQ(30, sizes.min_content);
|
| + EXPECT_EQ(60, sizes.max_content);
|
| +}
|
| +
|
| } // namespace blink
|
|
|