<!-- Test for https://bugs.webkit.org/show_bug.cgi?id=46319 -->
<head>
    <script src="resources/repaint.js"></script>
</head>
<body>
    <canvas id="canvas" width="100" height="100"></canvas> 
    <script>
        var canvas = document.getElementById('canvas');
        var ctx = canvas.getContext('2d');

        // prepare imagedata
        ctx.fillStyle = "rgb(255, 0, 0)"; ctx.fillRect(0, 0, 100, 100); // red background
        ctx.fillStyle = "rgb(0, 255, 0)"; ctx.fillRect(10, 10, 10, 10); // inset green square
        var imageDataGreen = ctx.getImageData(10, 10, 10, 10);
        var imageDataRedWithInsetGreen = ctx.getImageData(0, 0, 30, 30);

        // clear canvas to dark green 
        ctx.fillStyle = "rgb(0, 128, 0)";
        ctx.fillRect(0, 0, 100, 100);

        // fill target locations with dark red
        ctx.fillStyle = "rgb(128, 0, 0)";
        ctx.fillRect(0, 0, 10, 10);
        ctx.fillRect(40, 40, 10, 10);
        ctx.fillRect(80, 80, 10, 10);
        
        function repaintTest()
        {
            // patch up red squares with putImageData
            ctx.putImageData(imageDataGreen, 0, 0);
            ctx.putImageData(imageDataGreen, 40, 40);
            ctx.putImageData(imageDataRedWithInsetGreen, 70, 70, 10, 10, 10, 10);
        }

        window.onload = runRepaintTest;
    </script>
</body>
