<!doctype HTML> 
<html>
    <head>
        <title>HTML5 Canvas Test:  globalCompositeOperation "destination-over"</title>
        <link rel="author" title="Microsoft" href="http://www.microsoft.com" />
        <link rel="help" href="http://www.w3.org/TR/2dcontext/#dom-context-2d-globalcompositeoperation" />
        <meta name="assert" content="If the globalCompositeOperation is set to 'destination-over', display the destination image wherever the destination image is opaque." />
        <script type="text/javascript">
            function runTest() 
            {
                var canvas = document.getElementById("canvas1");
                var ctx = canvas.getContext("2d");

                // Source image.
                ctx.fillStyle = "rgba(0, 0, 0, 1.0)";
                ctx.fillRect(0, 0, 100, 50);

                // Assign the globalCompositeOperation.
                ctx.globalCompositeOperation = "destination-over";

                // Destination image.
                ctx.fillStyle = "rgba(255, 0, 0, 1.0)";
                ctx.fillRect(0, 0, 100, 50);
            }
        </script>
    </head>
    <body onload="runTest()">
        <p>Description: If the globalCompositeOperation is set to "destination-over", display the destination image wherever the destination image is opaque.</p>
        <p>Test passes if a black rectangle is seen on the page and no red is visible on the page.</p>
        <canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>
    </body>
</html>