<!DOCTYPE html>
<html>
<head>
<script src="../resources/common.js"></script>
<style>
select {background-color: red; }
</style>
</head>
<body>
<select disabled id="test" size=4">
<option selected>foo1</option>
<option>foo2</option>
<option>foo3</option>
<option>foo4</option>
<option>foo5</option>
</select>

<div id="result">Success if selection did not change.</div>
<div id="selection"></div>
<script>
if (window.testRunner) {
    testRunner.waitUntilDone();
}

if (window.eventSender) {
    eventSender.dragMode = false;
    mouseMoveToIndexInListbox(0, 'test');
    eventSender.mouseDown();
    mouseMoveToIndexInListbox(1, 'test');
    mouseMoveToIndexInListbox(2, 'test');
    setTimeout(function() {
      mouseMoveToIndexInListbox(3, 'test');
      testRunner.notifyDone();
    }, 100);
}
</script>
</html>

