TEST_F(PositionTest, NodeAsRangeLastNodeShadow) { const char* bodyContent = "<p id='host'>00<b id='one'>11</b><b id='two'>22</b>33</p>"; const char* shadowContent = "<a id='a'><content select=#two></content><content select=#one></content></a>"; setBodyContent(bodyContent); ShadowRoot* shadowRoot = setShadowContent(shadowContent, "host"); Node* host = document().getElementById("host"); Node* n1 = document().getElementById("one"); Node* n2 = document().getElementById("two"); Node* t0 = EditingStrategy::firstChild(*host); Node* t1 = EditingStrategy::firstChild(*n1); Node* t2 = EditingStrategy::firstChild(*n2); Node* t3 = EditingStrategy::lastChild(*host); Node* a = shadowRoot->getElementById("a"); EXPECT_EQ(t0, Position::inParentBeforeNode(*n1).nodeAsRangeLastNode()); EXPECT_EQ(t1, Position::inParentBeforeNode(*n2).nodeAsRangeLastNode()); EXPECT_EQ(t1, Position::inParentAfterNode(*n1).nodeAsRangeLastNode()); EXPECT_EQ(t2, Position::inParentAfterNode(*n2).nodeAsRangeLastNode()); EXPECT_EQ(t3, Position::afterNode(host).nodeAsRangeLastNode()); EXPECT_EQ(t2, PositionInFlatTree::inParentBeforeNode(*n1).nodeAsRangeLastNode()); EXPECT_EQ(a, PositionInFlatTree::inParentBeforeNode(*n2).nodeAsRangeLastNode()); EXPECT_EQ(t1, PositionInFlatTree::inParentAfterNode(*n1).nodeAsRangeLastNode()); EXPECT_EQ(t2, PositionInFlatTree::inParentAfterNode(*n2).nodeAsRangeLastNode()); EXPECT_EQ(t1, PositionInFlatTree::afterNode(host).nodeAsRangeLastNode()); }
TEST_F(PositionTest, ToPositionInFlatTreeWithActiveInsertionPoint) { const char* bodyContent = "<p id='host'>00<b id='one'>11</b>22</p>"; const char* shadowContent = "<a id='a'><content select=#one id='content'></content><content></content></a>"; setBodyContent(bodyContent); ShadowRoot* shadowRoot = setShadowContent(shadowContent, "host"); Element* anchor = shadowRoot->getElementById("a"); EXPECT_EQ(PositionInFlatTree(anchor, 0), toPositionInFlatTree(Position(anchor, 0))); EXPECT_EQ(PositionInFlatTree(anchor, 1), toPositionInFlatTree(Position(anchor, 1))); EXPECT_EQ(PositionInFlatTree(anchor, PositionAnchorType::AfterChildren), toPositionInFlatTree(Position(anchor, 2))); }