<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="../../resources/js-test-pre.js"></script>
<script>
window.jsTestIsAsync = true;

function test() {
    if (window.eventSender) {
        var selectObject = document.getElementById("selectId");

        var optionHeight =  selectObject.offsetHeight / selectObject.size;
        var x = selectObject.offsetLeft + selectObject.offsetWidth / 2;
        var y = selectObject.offsetTop + optionHeight / 2;

        eventSender.dragMode = false;
        eventSender.mouseMoveTo(x, y);
        eventSender.mouseDown();
        eventSender.mouseMoveTo(x, y + (optionHeight * 3));

        setTimeout(testSelection, 100);
    } else {
        debug("Test manually if options are getting selected by dragging on the select element.");
    }
}

function testSelection()
{
    eventSender.mouseUp();

    for (var i = 0; i < 4; i++) {
        shouldBeTrue("document.getElementById(\"selectId\").options[" + i + "].selected");
    }

    finishJSTest();
}
successfullyParsed = true;
</script>
<title></title>
</head>
<body onload="test()">
<p>Select multiple option with mouse drag</p>

<select multiple="multiple" size="4" id="selectId">
    <option value="P1">P1</option>
    <option value="P2">P2</option>
    <option value="P3">P3</option>
    <option value="P4">P4</option>
    <option value="P5">P5</option>
    <option value="P6">P6</option>
    <option value="P7">P7</option>
</select>

<div id="console"></div>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
