<!--
Calculating collapsed borders for big tables is expensive, so we cache them and recalculate when needed.
Here we change col border width, expect that cache is invalidated and paint produces expected image.
-->
<html>
    <head>
        <title></title>
        <link rel="stylesheet" href="resources/cached.css">
        <script type="text/javascript">
            function test() {
                document.body.offsetTop;
                if (window.testRunner)
                    testRunner.display();
                document.getElementById("col").style.borderWidth = "4px";
            }
        </script>
    </head>
    <body onload="test()">
        <table style="border-collapse:collapse; border:1px solid blue">
            <colgroup>
                <col style="border:1px solid yellow" id="col">
                <col>
            </colgroup>
            <tbody>
                <tr>
                    <td style="border:2px solid lime"/>
                    <td/>
                </tr>
                <tr>
                    <td/>
                    <td/>
                </tr>
            </tbody>
        </table>
    </body>
</html>

