TEST_F(DocumentMarkerControllerTest, UpdateRenderedRectsForComposition)
{
    setBodyInnerHTML("<div style='margin: 100px'>foo</div>");
    Element* div = toElement(document().body()->firstChild());
    markNodeContentsWithComposition(div);
    Vector<IntRect> renderedRects = markerController().renderedRectsForMarkers(DocumentMarker::Composition);
    EXPECT_EQ(1u, renderedRects.size());

    div->setAttribute(HTMLNames::styleAttr, "margin: 200px");
    document().updateStyleAndLayout();
    Vector<IntRect> newRenderedRects = markerController().renderedRectsForMarkers(DocumentMarker::Composition);
    EXPECT_EQ(1u, newRenderedRects.size());
    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]);
}