<html>

    <head>
        <style type="text/css">
            span:before { content: "TEST FAILED"; }
            #test:before { content: normal; }
        </style>
        <script type="text/javascript">
            if (window.testRunner) {
                testRunner.dumpAsText();   
                testRunner.waitUntilDone();
            }

            function run() {
                testWidth = window.getComputedStyle(document.getElementById("testContainer"), null).getPropertyValue("width");
                referenceWidth=window.getComputedStyle(document.getElementById("reference"), null).getPropertyValue("width");
                if (testWidth == referenceWidth)
                    document.getElementById("console").innerText = "PASSED";
                else
                    document.getElementById("console").innerText = "FAILED: testWidth=" + testWidth +"; expected " + referenceWidth;
                if (window.testRunner)
                    testRunner.notifyDone();
           }
        </script>
    </head>

    <body onload="setTimeout('run()', 0);">
        The texts between the markers should be identical.
        <p>========Marker1========</p>
        <table>
            <tr>
                <td id="testContainer"><span id="test">12345678901234567890</span></td>
                <td>1 1 1 1 1 1 1 1 1 1 1  1 1 11  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 </td>
            </tr>
        </table>
        <p>========Marker2========</p>
        <table>
            <tr>
                <td id="reference">12345678901234567890</td>
                <td>1 1 1 1 1 1 1 1 1 1 1  1 1 11  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 </td>
            </tr>
        </table>
        <p>========Marker3========</p>
        <pre id="console"/>
    </body>
</html>
