blob: 2a77ff339274a6b01f9e471773682730b71e217a [file] [log] [blame]
// Copyright 2015 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/dom/Node.h"
#include "core/editing/EditingTestBase.h"
namespace blink {
class NodeTest : public EditingTestBase {
};
TEST_F(NodeTest, canStartSelection)
{
const char* bodyContent = "<a id=one href='http://www.msn.com'>one</a><b id=two>two</b>";
setBodyContent(bodyContent);
Node* one = document().getElementById("one");
Node* two = document().getElementById("two");
EXPECT_FALSE(one->canStartSelection());
EXPECT_FALSE(one->firstChild()->canStartSelection());
EXPECT_TRUE(two->canStartSelection());
EXPECT_TRUE(two->firstChild()->canStartSelection());
}
TEST_F(NodeTest, canStartSelectionWithShadowDOM)
{
const char* bodyContent = "<div id=host><span id=one>one</span></div>";
const char* shadowContent = "<a href='http://www.msn.com'><content></content></a>";
setBodyContent(bodyContent);
setShadowContent(shadowContent, "host");
Node* one = document().getElementById("one");
EXPECT_FALSE(one->canStartSelection());
EXPECT_FALSE(one->firstChild()->canStartSelection());
}
TEST_F(NodeTest, customElementState)
{
const char* bodyContent = "<div id=div></div>";
setBodyContent(bodyContent);
Element* div = document().getElementById("div");
EXPECT_EQ(CustomElementState::Uncustomized, div->getCustomElementState());
EXPECT_TRUE(div->isDefined());
EXPECT_EQ(Node::V0NotCustomElement, div->getV0CustomElementState());
div->setCustomElementState(CustomElementState::Undefined);
EXPECT_EQ(CustomElementState::Undefined, div->getCustomElementState());
EXPECT_FALSE(div->isDefined());
EXPECT_EQ(Node::V0NotCustomElement, div->getV0CustomElementState());
div->setCustomElementState(CustomElementState::Custom);
EXPECT_EQ(CustomElementState::Custom, div->getCustomElementState());
EXPECT_TRUE(div->isDefined());
EXPECT_EQ(Node::V0NotCustomElement, div->getV0CustomElementState());
}
} // namespace blink