<html>

    <head>
        <style type="text/css">
            span:before { content: "TEST FAILED"; }
            #test:before { content: none; }
        </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>
