chromium/third_party/blink/web_tests/fast/forms/select/select-multiple-elements-with-mouse-drag.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="../../../resources/js-test.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>
</body>
</html>