blob: 4e2f4072a5cf0377aa47889bbe7af44006a1d993 [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