| Index: third_party/WebKit/Source/core/layout/ng/ng_block_node_test.cc
|
| diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_node_test.cc b/third_party/WebKit/Source/core/layout/ng/ng_block_node_test.cc
|
| index 7c70718761740f7e83ead688052f1d0f21c7de38..d3becbc086b9845c4ec174e69290d1588d4a7e2e 100644
|
| --- a/third_party/WebKit/Source/core/layout/ng/ng_block_node_test.cc
|
| +++ b/third_party/WebKit/Source/core/layout/ng/ng_block_node_test.cc
|
| @@ -18,6 +18,152 @@ class NGBlockNodeForTest : public RenderingTest {
|
| ~NGBlockNodeForTest() { RuntimeEnabledFeatures::setLayoutNGEnabled(false); };
|
| };
|
|
|
| +TEST_F(NGBlockNodeForTest, ChildInlineAndBlock) {
|
| + SetBodyInnerHTML(R"HTML(
|
| + <!DOCTYPE html>
|
| + <div id=container>Hello!<div></div></div>
|
| + )HTML");
|
| + NGBlockNode* container =
|
| + new NGBlockNode(GetLayoutObjectByElementId("container"));
|
| + NGLayoutInputNode* child1 = container->FirstChild();
|
| + EXPECT_TRUE(child1 && child1->IsBlock());
|
| + NGLayoutInputNode* child2 = child1->NextSibling();
|
| + EXPECT_TRUE(child2 && child2->IsBlock());
|
| + NGLayoutInputNode* child3 = child2->NextSibling();
|
| + EXPECT_EQ(child3, nullptr);
|
| +}
|
| +
|
| +TEST_F(NGBlockNodeForTest, ChildBlockAndInline) {
|
| + SetBodyInnerHTML(R"HTML(
|
| + <!DOCTYPE html>
|
| + <div id=container><div></div>Hello!</div>
|
| + )HTML");
|
| + NGBlockNode* container =
|
| + new NGBlockNode(GetLayoutObjectByElementId("container"));
|
| + NGLayoutInputNode* child1 = container->FirstChild();
|
| + EXPECT_TRUE(child1 && child1->IsBlock());
|
| + NGLayoutInputNode* child2 = child1->NextSibling();
|
| + EXPECT_TRUE(child2 && child2->IsBlock());
|
| + NGLayoutInputNode* child3 = child2->NextSibling();
|
| + EXPECT_EQ(child3, nullptr);
|
| +}
|
| +
|
| +TEST_F(NGBlockNodeForTest, ChildFloatBeforeBlock) {
|
| + SetBodyInnerHTML(R"HTML(
|
| + <!DOCTYPE html>
|
| + <style>
|
| + float { float: left; }
|
| + </style>
|
| + <div id=container><float></float><div></div></div>
|
| + )HTML");
|
| + NGBlockNode* container =
|
| + new NGBlockNode(GetLayoutObjectByElementId("container"));
|
| + NGLayoutInputNode* child1 = container->FirstChild();
|
| + EXPECT_TRUE(child1 && child1->IsBlock());
|
| + NGLayoutInputNode* child2 = child1->NextSibling();
|
| + EXPECT_TRUE(child2 && child2->IsBlock());
|
| + NGLayoutInputNode* child3 = child2->NextSibling();
|
| + EXPECT_EQ(child3, nullptr);
|
| +}
|
| +
|
| +TEST_F(NGBlockNodeForTest, ChildFloatBeforeInline) {
|
| + SetBodyInnerHTML(R"HTML(
|
| + <!DOCTYPE html>
|
| + <style>
|
| + float { float: left; }
|
| + </style>
|
| + <div id=container><float></float>Hello!</div>
|
| + )HTML");
|
| + NGBlockNode* container =
|
| + new NGBlockNode(GetLayoutObjectByElementId("container"));
|
| + NGLayoutInputNode* child1 = container->FirstChild();
|
| + EXPECT_TRUE(child1 && child1->IsInline());
|
| + NGLayoutInputNode* child2 = child1->NextSibling();
|
| + EXPECT_EQ(child2, nullptr);
|
| +}
|
| +
|
| +TEST_F(NGBlockNodeForTest, ChildFloatAfterInline) {
|
| + SetBodyInnerHTML(R"HTML(
|
| + <!DOCTYPE html>
|
| + <style>
|
| + float { float: left; }
|
| + </style>
|
| + <div id=container>Hello<float></float></div>
|
| + )HTML");
|
| + NGBlockNode* container =
|
| + new NGBlockNode(GetLayoutObjectByElementId("container"));
|
| + NGLayoutInputNode* child1 = container->FirstChild();
|
| + EXPECT_TRUE(child1 && child1->IsInline());
|
| + NGLayoutInputNode* child2 = child1->NextSibling();
|
| + EXPECT_EQ(child2, nullptr);
|
| +}
|
| +
|
| +TEST_F(NGBlockNodeForTest, ChildFloatOnly) {
|
| + SetBodyInnerHTML(R"HTML(
|
| + <!DOCTYPE html>
|
| + <style>
|
| + float { float: left; }
|
| + </style>
|
| + <div id=container><float></float></div>
|
| + )HTML");
|
| + NGBlockNode* container =
|
| + new NGBlockNode(GetLayoutObjectByElementId("container"));
|
| + NGLayoutInputNode* child1 = container->FirstChild();
|
| + EXPECT_TRUE(child1 && child1->IsBlock());
|
| + NGLayoutInputNode* child2 = child1->NextSibling();
|
| + EXPECT_EQ(child2, nullptr);
|
| +}
|
| +
|
| +TEST_F(NGBlockNodeForTest, ChildFloatWithSpaces) {
|
| + SetBodyInnerHTML(R"HTML(
|
| + <!DOCTYPE html>
|
| + <style>
|
| + float { float: left; }
|
| + </style>
|
| + <div id=container>
|
| + <float></float>
|
| + </div>
|
| + )HTML");
|
| + NGBlockNode* container =
|
| + new NGBlockNode(GetLayoutObjectByElementId("container"));
|
| + NGLayoutInputNode* child1 = container->FirstChild();
|
| + EXPECT_TRUE(child1 && child1->IsBlock());
|
| + NGLayoutInputNode* child2 = child1->NextSibling();
|
| + EXPECT_EQ(child2, nullptr);
|
| +}
|
| +
|
| +TEST_F(NGBlockNodeForTest, ChildOofBeforeInline) {
|
| + SetBodyInnerHTML(R"HTML(
|
| + <!DOCTYPE html>
|
| + <style>
|
| + oof { position: absolute; }
|
| + </style>
|
| + <div id=container><oof></oof>Hello!</div>
|
| + )HTML");
|
| + NGBlockNode* container =
|
| + new NGBlockNode(GetLayoutObjectByElementId("container"));
|
| + NGLayoutInputNode* child1 = container->FirstChild();
|
| + EXPECT_TRUE(child1 && child1->IsInline());
|
| + NGLayoutInputNode* child2 = child1->NextSibling();
|
| + EXPECT_EQ(child2, nullptr);
|
| +}
|
| +
|
| +TEST_F(NGBlockNodeForTest, ChildOofAfterInline) {
|
| + SetBodyInnerHTML(R"HTML(
|
| + <!DOCTYPE html>
|
| + <style>
|
| + oof { position: absolute; }
|
| + </style>
|
| + <div id=container>Hello!<oof></oof></div>
|
| + )HTML");
|
| + NGBlockNode* container =
|
| + new NGBlockNode(GetLayoutObjectByElementId("container"));
|
| + NGLayoutInputNode* child1 = container->FirstChild();
|
| + EXPECT_TRUE(child1 && child1->IsInline());
|
| + NGLayoutInputNode* child2 = child1->NextSibling();
|
| + EXPECT_EQ(child2, nullptr);
|
| +}
|
| +
|
| TEST_F(NGBlockNodeForTest, MinAndMaxContent) {
|
| SetBodyInnerHTML(R"HTML(
|
| <div id="box" >
|
|
|