<html>
<head>
    <title></title>
    <script>
        if (window.testRunner)
            testRunner.waitUntilDone();
        function runTest()
        {
            document.getElementById("popup").selectedIndex = 1;
            document.getElementById("button").innerText = "SUCCESS";
            if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
    <style>
        select, button { display: block; height: 30px; width: 200px; }
        select { -webkit-appearance: none; }
    </style>
</head>
<body onload="setTimeout(runTest, 0)">
    <p>
        Test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=13391">http://bugs.webkit.org/show_bug.cgi?id=13391</a>
        REGRESSION (r18819): Incomplete repaint of button text</i>.
    </p>
    <p>
        The popup and the button should say &ldquo;SUCCESS&rdquo; with no sign of &ldquo;FAILURE&rdquo;.
    </p>
    <select id="popup">
        <option>FAILURE</option>
        <option>SUCCESS</option>
    </select>
    <button id="button">FAILURE</button>
</body>
</html>
