| Index: Source/core/editing/markers/DocumentMarkerControllerTest.cpp
|
| diff --git a/Source/core/editing/markers/DocumentMarkerControllerTest.cpp b/Source/core/editing/markers/DocumentMarkerControllerTest.cpp
|
| index 3c5fdee4e95e32034675efaad0b63b4520ad8d54..1f04a20d18c38fac8163f21aabcb8a2a79f1b0c0 100644
|
| --- a/Source/core/editing/markers/DocumentMarkerControllerTest.cpp
|
| +++ b/Source/core/editing/markers/DocumentMarkerControllerTest.cpp
|
| @@ -54,6 +54,7 @@ protected:
|
|
|
| PassRefPtrWillBeRawPtr<Text> createTextNode(const char*);
|
| void markNodeContents(PassRefPtrWillBeRawPtr<Node>);
|
| + void markNodeContentsWithComposition(PassRefPtrWillBeRawPtr<Node>);
|
| void setBodyInnerHTML(const char*);
|
|
|
| private:
|
| @@ -82,6 +83,15 @@ void DocumentMarkerControllerTest::markNodeContents(PassRefPtrWillBeRawPtr<Node>
|
| markerController().addMarker(range.startPosition(), range.endPosition(), DocumentMarker::Spelling);
|
| }
|
|
|
| +void DocumentMarkerControllerTest::markNodeContentsWithComposition(PassRefPtrWillBeRawPtr<Node> node)
|
| +{
|
| + // Force layoutObjects to be created; TextIterator, which is used in
|
| + // DocumentMarkerControllerTest::addMarker(), needs them.
|
| + document().updateLayout();
|
| + auto range = EphemeralRange::rangeOfContents(*node);
|
| + markerController().addCompositionMarker(range.startPosition(), range.endPosition(), Color::black, false, Color::black);
|
| +}
|
| +
|
| void DocumentMarkerControllerTest::setBodyInnerHTML(const char* bodyContent)
|
| {
|
| document().body()->setInnerHTML(String::fromUTF8(bodyContent), ASSERT_NO_EXCEPTION);
|
| @@ -217,4 +227,22 @@ TEST_F(DocumentMarkerControllerTest, UpdateRenderedRects)
|
| EXPECT_NE(renderedRects[0], newRenderedRects[0]);
|
| }
|
|
|
| +TEST_F(DocumentMarkerControllerTest, UpdateRenderedRectsForComposition)
|
| +{
|
| + IntRect invalidRect(RenderedDocumentMarker::create(DocumentMarker(0, 0, false))->renderedRect());
|
| +
|
| + setBodyInnerHTML("<div style='margin: 100px'>foo</div>");
|
| + RefPtrWillBeRawPtr<Element> div = toElement(document().body()->firstChild());
|
| + markNodeContentsWithComposition(div);
|
| + Vector<IntRect> renderedRects = markerController().renderedRectsForMarkers(DocumentMarker::Composition);
|
| + EXPECT_EQ(1u, renderedRects.size());
|
| + EXPECT_NE(invalidRect, renderedRects[0]);
|
| +
|
| + div->setAttribute(HTMLNames::styleAttr, "margin: 200px");
|
| + document().updateLayout();
|
| + Vector<IntRect> newRenderedRects = markerController().renderedRectsForMarkers(DocumentMarker::Composition);
|
| + EXPECT_EQ(1u, newRenderedRects.size());
|
| + EXPECT_NE(renderedRects[0], newRenderedRects[0]);
|
| +}
|
| +
|
| } // namespace blink
|
|
|