<html>
    <head>
        <style type='text/css'>
            #theSelect { display: none; }
        </style>
        <script type="text/javascript">
        function runTest() {
            if (window.layoutTestController)
                layoutTestController.dumpAsText();
            var console = document.getElementById('console');
            var theOption = document.getElementById('theOption');
            console.innerHTML += theOption.selected + "<br>";
            theOption.parentNode.selectedIndex;
            console.innerHTML += theOption.selected + "<br>";
        }
        </script>
    </head>
    <body onload="runTest()">
        <p>The test below queries the selected property of the option. In both cases it should be selected, just as the result is when the select is visible. Bug 15088</p>
        <pre id='console'></pre>

        <select id='theSelect'>
            <option id='theOption'>The Option</option>
        </select>
    </body>
</html>
