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

Unified Diff: third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc

Issue 2921463004: [LayoutNG] PODify NGLayoutInputNode and sub-classes. (Closed)
Patch Set: new ng-bot expectations Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
index 114e1ae1c7dff8e3e4786742eb27f4fc70d3e21a..4b7e752e4213663790e4d429334d32848e2664d6 100644
--- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
@@ -86,13 +86,16 @@ class NGInlineNodeTest : public RenderingTest {
SetupHtml("t", "<div id=t style='font:10px Ahem'>test</div>");
}
- NGInlineNodeForTest* CreateInlineNode() {
+ NGInlineNodeForTest CreateInlineNode() {
if (!layout_block_flow_)
SetupHtml("t", "<div id=t style='font:10px'>test</div>");
- return new NGInlineNodeForTest(layout_object_, layout_block_flow_);
+ NGInlineNodeForTest node(layout_block_flow_,
+ layout_block_flow_->FirstChild());
+ node.InvalidatePrepareLayout();
+ return node;
}
- void CreateLine(NGInlineNode* node,
+ void CreateLine(NGInlineNode node,
Vector<RefPtr<const NGPhysicalTextFragment>>* fragments_out) {
RefPtr<NGConstraintSpace> constraint_space =
NGConstraintSpaceBuilder(kHorizontalTopBottom)
@@ -134,9 +137,9 @@ class NGInlineNodeTest : public RenderingTest {
TEST_F(NGInlineNodeTest, CollectInlinesText) {
SetupHtml("t", "<div id=t>Hello <span>inline</span> world.</div>");
- NGInlineNodeForTest* node = CreateInlineNode();
- node->CollectInlines(layout_object_, layout_block_flow_);
- Vector<NGInlineItem>& items = node->Items();
+ NGInlineNodeForTest node = CreateInlineNode();
+ node.CollectInlines(layout_object_, layout_block_flow_);
+ Vector<NGInlineItem>& items = node.Items();
TEST_ITEM_TYPE_OFFSET(items[0], kText, 0u, 6u);
TEST_ITEM_TYPE_OFFSET(items[1], kOpenTag, 6u, 6u);
TEST_ITEM_TYPE_OFFSET(items[2], kText, 6u, 12u);
@@ -147,10 +150,10 @@ TEST_F(NGInlineNodeTest, CollectInlinesText) {
TEST_F(NGInlineNodeTest, CollectInlinesBR) {
SetupHtml("t", u"<div id=t>Hello<br>World</div>");
- NGInlineNodeForTest* node = CreateInlineNode();
- node->CollectInlines(layout_object_, layout_block_flow_);
- EXPECT_EQ("Hello\nWorld", node->Text());
- Vector<NGInlineItem>& items = node->Items();
+ NGInlineNodeForTest node = CreateInlineNode();
+ node.CollectInlines(layout_object_, layout_block_flow_);
+ EXPECT_EQ("Hello\nWorld", node.Text());
+ Vector<NGInlineItem>& items = node.Items();
TEST_ITEM_TYPE_OFFSET(items[0], kText, 0u, 5u);
TEST_ITEM_TYPE_OFFSET(items[1], kControl, 5u, 6u);
TEST_ITEM_TYPE_OFFSET(items[2], kText, 6u, 11u);
@@ -159,12 +162,12 @@ TEST_F(NGInlineNodeTest, CollectInlinesBR) {
TEST_F(NGInlineNodeTest, CollectInlinesRtlText) {
SetupHtml("t", u"<div id=t dir=rtl>\u05E2 <span>\u05E2</span> \u05E2</div>");
- NGInlineNodeForTest* node = CreateInlineNode();
- node->CollectInlines(layout_object_, layout_block_flow_);
- EXPECT_TRUE(node->IsBidiEnabled());
- node->SegmentText();
- EXPECT_TRUE(node->IsBidiEnabled());
- Vector<NGInlineItem>& items = node->Items();
+ NGInlineNodeForTest node = CreateInlineNode();
+ node.CollectInlines(layout_object_, layout_block_flow_);
+ EXPECT_TRUE(node.IsBidiEnabled());
+ node.SegmentText();
+ EXPECT_TRUE(node.IsBidiEnabled());
+ Vector<NGInlineItem>& items = node.Items();
TEST_ITEM_TYPE_OFFSET_LEVEL(items[0], kText, 0u, 2u, 1u);
TEST_ITEM_TYPE_OFFSET_LEVEL(items[1], kOpenTag, 2u, 2u, 1u);
TEST_ITEM_TYPE_OFFSET_LEVEL(items[2], kText, 2u, 3u, 1u);
@@ -175,12 +178,12 @@ TEST_F(NGInlineNodeTest, CollectInlinesRtlText) {
TEST_F(NGInlineNodeTest, CollectInlinesMixedText) {
SetupHtml("t", u"<div id=t>Hello, \u05E2 <span>\u05E2</span></div>");
- NGInlineNodeForTest* node = CreateInlineNode();
- node->CollectInlines(layout_object_, layout_block_flow_);
- EXPECT_TRUE(node->IsBidiEnabled());
- node->SegmentText();
- EXPECT_TRUE(node->IsBidiEnabled());
- Vector<NGInlineItem>& items = node->Items();
+ NGInlineNodeForTest node = CreateInlineNode();
+ node.CollectInlines(layout_object_, layout_block_flow_);
+ EXPECT_TRUE(node.IsBidiEnabled());
+ node.SegmentText();
+ EXPECT_TRUE(node.IsBidiEnabled());
+ Vector<NGInlineItem>& items = node.Items();
TEST_ITEM_TYPE_OFFSET_LEVEL(items[0], kText, 0u, 7u, 0u);
TEST_ITEM_TYPE_OFFSET_LEVEL(items[1], kText, 7u, 9u, 1u);
TEST_ITEM_TYPE_OFFSET_LEVEL(items[2], kOpenTag, 9u, 9u, 1u);
@@ -191,12 +194,12 @@ TEST_F(NGInlineNodeTest, CollectInlinesMixedText) {
TEST_F(NGInlineNodeTest, CollectInlinesMixedTextEndWithON) {
SetupHtml("t", u"<div id=t>Hello, \u05E2 <span>\u05E2!</span></div>");
- NGInlineNodeForTest* node = CreateInlineNode();
- node->CollectInlines(layout_object_, layout_block_flow_);
- EXPECT_TRUE(node->IsBidiEnabled());
- node->SegmentText();
- EXPECT_TRUE(node->IsBidiEnabled());
- Vector<NGInlineItem>& items = node->Items();
+ NGInlineNodeForTest node = CreateInlineNode();
+ node.CollectInlines(layout_object_, layout_block_flow_);
+ EXPECT_TRUE(node.IsBidiEnabled());
+ node.SegmentText();
+ EXPECT_TRUE(node.IsBidiEnabled());
+ Vector<NGInlineItem>& items = node.Items();
TEST_ITEM_TYPE_OFFSET_LEVEL(items[0], kText, 0u, 7u, 0u);
TEST_ITEM_TYPE_OFFSET_LEVEL(items[1], kText, 7u, 9u, 1u);
TEST_ITEM_TYPE_OFFSET_LEVEL(items[2], kOpenTag, 9u, 9u, 1u);
@@ -207,42 +210,42 @@ TEST_F(NGInlineNodeTest, CollectInlinesMixedTextEndWithON) {
}
TEST_F(NGInlineNodeTest, SegmentASCII) {
- NGInlineNodeForTest* node = CreateInlineNode();
- node->Append("Hello");
- node->SegmentText();
- Vector<NGInlineItem>& items = node->Items();
+ NGInlineNodeForTest node = CreateInlineNode();
+ node.Append("Hello");
+ node.SegmentText();
+ Vector<NGInlineItem>& items = node.Items();
ASSERT_EQ(1u, items.size());
TEST_ITEM_OFFSET_DIR(items[0], 0u, 5u, TextDirection::kLtr);
}
TEST_F(NGInlineNodeTest, SegmentHebrew) {
- NGInlineNodeForTest* node = CreateInlineNode();
- node->Append(u"\u05E2\u05D1\u05E8\u05D9\u05EA");
- node->SegmentText();
- ASSERT_EQ(1u, node->Items().size());
- Vector<NGInlineItem>& items = node->Items();
+ NGInlineNodeForTest node = CreateInlineNode();
+ node.Append(u"\u05E2\u05D1\u05E8\u05D9\u05EA");
+ node.SegmentText();
+ ASSERT_EQ(1u, node.Items().size());
+ Vector<NGInlineItem>& items = node.Items();
ASSERT_EQ(1u, items.size());
TEST_ITEM_OFFSET_DIR(items[0], 0u, 5u, TextDirection::kRtl);
}
TEST_F(NGInlineNodeTest, SegmentSplit1To2) {
- NGInlineNodeForTest* node = CreateInlineNode();
- node->Append(u"Hello \u05E2\u05D1\u05E8\u05D9\u05EA");
- node->SegmentText();
- ASSERT_EQ(2u, node->Items().size());
- Vector<NGInlineItem>& items = node->Items();
+ NGInlineNodeForTest node = CreateInlineNode();
+ node.Append(u"Hello \u05E2\u05D1\u05E8\u05D9\u05EA");
+ node.SegmentText();
+ ASSERT_EQ(2u, node.Items().size());
+ Vector<NGInlineItem>& items = node.Items();
ASSERT_EQ(2u, items.size());
TEST_ITEM_OFFSET_DIR(items[0], 0u, 6u, TextDirection::kLtr);
TEST_ITEM_OFFSET_DIR(items[1], 6u, 11u, TextDirection::kRtl);
}
TEST_F(NGInlineNodeTest, SegmentSplit3To4) {
- NGInlineNodeForTest* node = CreateInlineNode();
- node->Append("Hel");
- node->Append(u"lo \u05E2");
- node->Append(u"\u05D1\u05E8\u05D9\u05EA");
- node->SegmentText();
- Vector<NGInlineItem>& items = node->Items();
+ NGInlineNodeForTest node = CreateInlineNode();
+ node.Append("Hel");
+ node.Append(u"lo \u05E2");
+ node.Append(u"\u05D1\u05E8\u05D9\u05EA");
+ node.SegmentText();
+ Vector<NGInlineItem>& items = node.Items();
ASSERT_EQ(4u, items.size());
TEST_ITEM_OFFSET_DIR(items[0], 0u, 3u, TextDirection::kLtr);
TEST_ITEM_OFFSET_DIR(items[1], 3u, 6u, TextDirection::kLtr);
@@ -251,13 +254,13 @@ TEST_F(NGInlineNodeTest, SegmentSplit3To4) {
}
TEST_F(NGInlineNodeTest, SegmentBidiOverride) {
- NGInlineNodeForTest* node = CreateInlineNode();
- node->Append("Hello ");
- node->Append(kRightToLeftOverrideCharacter);
- node->Append("ABC");
- node->Append(kPopDirectionalFormattingCharacter);
- node->SegmentText();
- Vector<NGInlineItem>& items = node->Items();
+ NGInlineNodeForTest node = CreateInlineNode();
+ node.Append("Hello ");
+ node.Append(kRightToLeftOverrideCharacter);
+ node.Append("ABC");
+ node.Append(kPopDirectionalFormattingCharacter);
+ node.SegmentText();
+ Vector<NGInlineItem>& items = node.Items();
ASSERT_EQ(4u, items.size());
TEST_ITEM_OFFSET_DIR(items[0], 0u, 6u, TextDirection::kLtr);
TEST_ITEM_OFFSET_DIR(items[1], 6u, 7u, TextDirection::kRtl);
@@ -265,26 +268,26 @@ TEST_F(NGInlineNodeTest, SegmentBidiOverride) {
TEST_ITEM_OFFSET_DIR(items[3], 10u, 11u, TextDirection::kLtr);
}
-static NGInlineNodeForTest* CreateBidiIsolateNode(NGInlineNodeForTest* node,
- const ComputedStyle* style,
- LayoutObject* layout_object) {
- node->Append("Hello ", style, layout_object);
- node->Append(kRightToLeftIsolateCharacter);
- node->Append(u"\u05E2\u05D1\u05E8\u05D9\u05EA ", style, layout_object);
- node->Append(kLeftToRightIsolateCharacter);
- node->Append("A", style, layout_object);
- node->Append(kPopDirectionalIsolateCharacter);
- node->Append(u"\u05E2\u05D1\u05E8\u05D9\u05EA", style, layout_object);
- node->Append(kPopDirectionalIsolateCharacter);
- node->Append(" World", style, layout_object);
- node->SegmentText();
+static NGInlineNodeForTest CreateBidiIsolateNode(NGInlineNodeForTest node,
+ const ComputedStyle* style,
+ LayoutObject* layout_object) {
+ node.Append("Hello ", style, layout_object);
+ node.Append(kRightToLeftIsolateCharacter);
+ node.Append(u"\u05E2\u05D1\u05E8\u05D9\u05EA ", style, layout_object);
+ node.Append(kLeftToRightIsolateCharacter);
+ node.Append("A", style, layout_object);
+ node.Append(kPopDirectionalIsolateCharacter);
+ node.Append(u"\u05E2\u05D1\u05E8\u05D9\u05EA", style, layout_object);
+ node.Append(kPopDirectionalIsolateCharacter);
+ node.Append(" World", style, layout_object);
+ node.SegmentText();
return node;
}
TEST_F(NGInlineNodeTest, SegmentBidiIsolate) {
- NGInlineNodeForTest* node =
+ NGInlineNodeForTest node =
CreateBidiIsolateNode(CreateInlineNode(), style_.Get(), layout_object_);
- Vector<NGInlineItem>& items = node->Items();
+ Vector<NGInlineItem>& items = node.Items();
ASSERT_EQ(9u, items.size());
TEST_ITEM_OFFSET_DIR(items[0], 0u, 6u, TextDirection::kLtr);
TEST_ITEM_OFFSET_DIR(items[1], 6u, 7u, TextDirection::kLtr);
@@ -303,16 +306,16 @@ TEST_F(NGInlineNodeTest, SegmentBidiIsolate) {
EXPECT_EQ(index, fragment->ItemIndex()); \
EXPECT_EQ(start_offset, fragment->StartOffset()); \
EXPECT_EQ(end_offset, fragment->EndOffset()); \
- EXPECT_EQ(dir, node->Items()[fragment->ItemIndex()].Direction())
+ EXPECT_EQ(dir, node.Items()[fragment->ItemIndex()].Direction())
TEST_F(NGInlineNodeTest, CreateLineBidiIsolate) {
UseLayoutObjectAndAhem();
RefPtr<ComputedStyle> style = ComputedStyle::Create();
style->SetLineHeight(Length(1, kFixed));
style->GetFont().Update(nullptr);
- NGInlineNodeForTest* node =
+ NGInlineNodeForTest node =
CreateBidiIsolateNode(CreateInlineNode(), style.Get(), layout_object_);
- node->ShapeText();
+ node.ShapeText();
Vector<RefPtr<const NGPhysicalTextFragment>> fragments;
CreateLine(node, &fragments);
ASSERT_EQ(5u, fragments.size());
@@ -325,21 +328,21 @@ TEST_F(NGInlineNodeTest, CreateLineBidiIsolate) {
TEST_F(NGInlineNodeTest, MinMaxContentSize) {
UseLayoutObjectAndAhem();
- NGInlineNodeForTest* node = CreateInlineNode();
- node->Append("AB CDEF", style_.Get(), layout_object_);
- node->ShapeText();
- MinMaxContentSize sizes = node->ComputeMinMaxContentSize();
+ NGInlineNodeForTest node = CreateInlineNode();
+ node.Append("AB CDEF", style_.Get(), layout_object_);
+ node.ShapeText();
+ MinMaxContentSize sizes = node.ComputeMinMaxContentSize();
EXPECT_EQ(40, sizes.min_content);
EXPECT_EQ(70, sizes.max_content);
}
TEST_F(NGInlineNodeTest, MinMaxContentSizeElementBoundary) {
UseLayoutObjectAndAhem();
- NGInlineNodeForTest* node = CreateInlineNode();
- node->Append("A B", style_.Get(), layout_object_);
- node->Append("C D", style_.Get(), layout_object_);
- node->ShapeText();
- MinMaxContentSize sizes = node->ComputeMinMaxContentSize();
+ NGInlineNodeForTest node = CreateInlineNode();
+ node.Append("A B", style_.Get(), layout_object_);
+ node.Append("C D", style_.Get(), layout_object_);
+ node.ShapeText();
+ MinMaxContentSize sizes = node.ComputeMinMaxContentSize();
// |min_content| should be the width of "BC" because there is an element
// boundary between "B" and "C" but no break opportunities.
EXPECT_EQ(20, sizes.min_content);

Powered by Google App Engine
This is Rietveld 408576698