blob: f5d8247b74057bdfbd846cbbc7df1e9f80c8e37a [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "core/layout/LayoutInline.h"
#include "core/layout/LayoutBlockFlow.h"
#include "core/layout/LayoutTestHelper.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace blink {
class LayoutInlineTest : public RenderingTest {
};
TEST_F(LayoutInlineTest, SimpleContinuation)
{
setBodyInnerHTML("<span id='splitInline'><i id='before'></i><h1 id='blockChild'></h1><i id='after'></i></span>");
LayoutInline* splitInlinePart1 = toLayoutInline(getLayoutObjectByElementId("splitInline"));
ASSERT_TRUE(splitInlinePart1);
ASSERT_TRUE(splitInlinePart1->firstChild());
EXPECT_EQ(splitInlinePart1->firstChild(), getLayoutObjectByElementId("before"));
EXPECT_FALSE(splitInlinePart1->firstChild()->nextSibling());
LayoutBlockFlow* block = toLayoutBlockFlow(splitInlinePart1->continuation());
ASSERT_TRUE(block);
ASSERT_TRUE(block->firstChild());
EXPECT_EQ(block->firstChild(), getLayoutObjectByElementId("blockChild"));
EXPECT_FALSE(block->firstChild()->nextSibling());
LayoutInline* splitInlinePart2 = toLayoutInline(block->continuation());
ASSERT_TRUE(splitInlinePart2);
ASSERT_TRUE(splitInlinePart2->firstChild());
EXPECT_EQ(splitInlinePart2->firstChild(), getLayoutObjectByElementId("after"));
EXPECT_FALSE(splitInlinePart2->firstChild()->nextSibling());
EXPECT_FALSE(splitInlinePart2->continuation());
}
} // namespace blink