<!doctype HTML> 
<html>
    <head>
        <title>HTML5 Canvas Test: restore() pops top entry in drawing state stack</title>
        <link rel="author" title="Microsoft" href="http://www.microsoft.com" />
        <link rel="help" href="http://www.w3.org/TR/2dcontext/#the-canvas-state" />
        <meta name="assert" content="restore() pops the top entry in the drawing state stack." />
        <script type="text/javascript">
            function runTest() 
            {
                var canvas = document.getElementById("canvas1");
                var ctx = canvas.getContext("2d");
                ctx.fillStyle = "rgba(255, 0, 0, 1.0)";
                ctx.fillRect(0, 0, 99, 50); 

                // Save colors to the stack as separate drawing states.
                ctx.fillStyle = "rgba(255, 255, 0, 1.0)";
                ctx.save(); 
                ctx.fillStyle = "rgba(0, 0, 255, 1.0)";
                ctx.save();
                ctx.fillStyle = "rgba(0, 255, 0, 1.0)";
                ctx.save(); 

                // Modify the current fillStyle.
                ctx.fillStyle = "rgba(255, 0, 0, 1.0)";

                // Restore the drawing states previously saved and draw with them.
                ctx.restore(); 
                ctx.fillRect(66, 0, 33, 50); 
                ctx.restore(); 
                ctx.fillRect(33, 0, 33, 50);
                ctx.restore(); 
                ctx.fillRect(0, 0, 33, 50); 
            }
        </script>
    </head>
    <body onload="runTest()">
        <p>Description: restore() pops the top entry in the drawing state stack.</p>
        <p>Test passes if a rectangle is seen on the page with three colors - ordered from left to right:  yellow, blue, green.  The test fails if this order is not shown or if any red is seen.</p>
        <canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>
    </body>
</html>