<!DOCTYPE html><!-- webkit-test-runner [ enableEditableImages=true ] -->
<head>
<script src="../../resources/ui-helper.js"></script>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

addEventListener("load", async () => {
    await UIHelper.stylusTapAt(0, 0);
    const initialNumberOfStrokesInEditableImage = (await UIHelper.numberOfStrokesInEditableImage());
    await UIHelper.drawSquareInEditableImage();
    const numberOfStrokesInEditableImageAfterDrawing = (await UIHelper.numberOfStrokesInEditableImage());
    document.getElementById("log").innerHTML = `Had ${initialNumberOfStrokesInEditableImage} strokes in editable image before drawing.<br/>Had ${numberOfStrokesInEditableImageAfterDrawing} stroke in editable image after drawing.`;
    testRunner.notifyDone();
});
</script>
</head>
<body contenteditable>
<div id="log"></div>
</body>
