<!doctype HTML> 
<html>
    <head>
        <title>HTML5 Canvas Test: scale() transformation</title>
        <link rel="author" title="Microsoft" href="http://www.microsoft.com" />
        <link rel="help" href="http://www.w3.org/TR/2dcontext/#dom-context-2d-scale" />
        <meta name="assert" content="The scale(x, y) method must add the scaling transformation described by the arguments to the transformation matrix." />
        <script type="text/javascript">
            function runTest() 
            {
                var canvas = document.getElementById("canvas1");
                var ctx = canvas.getContext("2d");

                // Draw a red rectangle.
                ctx.fillStyle = "rgba(255, 0, 0, 1.0)";
                ctx.fillRect(0, 0, 100, 50);

                // Draw a black rectangle with scaling.
                ctx.fillStyle = "rgba(0, 0, 0, 1.0)";
                ctx.scale(2, 2);
                ctx.fillRect(0, 0, 50, 25);
            }
        </script>
    </head>
    <body onload="runTest()">
        <p>Description: The scale(x, y) method must add the scaling transformation described by the arguments to the transformation matrix.</p>
        <p>Test passes if there is no red visible on the page and a black rectangle is seen on the page.</p>
        <canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>
    </body>
</html>