128 lines
4.3 KiB
HTML
128 lines
4.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<title></title>
|
|
</head>
|
|
<body>
|
|
<p>Select multiple options with mouse drag with no. of options less than the size attribute</p>
|
|
<p>Also test mouse drag on select element without multiple attribute select only the option under mouse</p>
|
|
|
|
<select multiple="multiple" size="7" 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>
|
|
</select>
|
|
|
|
<select size="7" id="nonmultiple">
|
|
<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>
|
|
</select>
|
|
|
|
<div id="console"></div>
|
|
<script>
|
|
if (window.eventSender) {
|
|
debug("Test for select element with multiple attribute");
|
|
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();
|
|
|
|
debug("Dragging down");
|
|
eventSender.mouseDown();
|
|
eventSender.mouseMoveTo(x, y + (optionHeight * 3));
|
|
eventSender.mouseUp();
|
|
testOptionSelection(0, 4, "true", "selectId");
|
|
|
|
debug("Dragging up");
|
|
eventSender.mouseDown();
|
|
eventSender.mouseMoveTo(x, y);
|
|
eventSender.mouseUp();
|
|
testOptionSelection(0, 4, "true", "selectId");
|
|
|
|
debug("Dragging with addSelectionKey")
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
eventSender.mouseMoveTo(x, y + (optionHeight * 2));
|
|
eventSender.mouseDown(0, ["addSelectionKey"]);
|
|
eventSender.mouseMoveTo(x, y + (optionHeight * 4));
|
|
eventSender.mouseUp(0, ["addSelectionKey"]);
|
|
testOptionSelection(0, 1, "true", "selectId");
|
|
testOptionSelection(2, 5, "true", "selectId");
|
|
|
|
debug("Dragging with rangeSelectionKey");
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
eventSender.mouseMoveTo(x, y + (optionHeight * 2));
|
|
eventSender.mouseDown(0, ["rangeSelectionKey"]);
|
|
eventSender.mouseMoveTo(x, y);
|
|
eventSender.mouseUp(0, ["rangeSelectionKey"]);
|
|
testOptionSelection(0, 4, "true", "selectId");
|
|
|
|
debug("Test for select element without multiple attribute");
|
|
var nonMultipleObject = document.getElementById("nonmultiple");
|
|
var optionHeight = nonMultipleObject.offsetHeight / nonMultipleObject.size;
|
|
x = nonMultipleObject.offsetLeft + nonMultipleObject.offsetWidth / 2;
|
|
y = nonMultipleObject.offsetTop + optionHeight / 2;
|
|
|
|
eventSender.dragMode = false;
|
|
eventSender.mouseMoveTo(x, y);
|
|
eventSender.mouseDown();
|
|
|
|
debug("Dragging down");
|
|
eventSender.mouseDown();
|
|
eventSender.mouseMoveTo(x, y + (optionHeight * 3));
|
|
eventSender.mouseUp();
|
|
testOptionSelection(0, 3, "false", "nonmultiple");
|
|
testOptionSelection(3, 4, "true", "nonmultiple");
|
|
|
|
debug("Dragging up");
|
|
eventSender.mouseDown();
|
|
eventSender.mouseMoveTo(x, y);
|
|
eventSender.mouseUp();
|
|
testOptionSelection(0, 1, "true", "nonmultiple");
|
|
testOptionSelection(1, 4, "false", "nonmultiple");
|
|
|
|
debug("Dragging with addSelectionKey")
|
|
eventSender.mouseDown();
|
|
eventSender.mouseDown(0, "addSelectionKey");
|
|
eventSender.mouseMoveTo(x, y + (optionHeight * 3));
|
|
eventSender.mouseUp(0, "addSelectionKey");
|
|
testOptionSelection(0, 3, "false", "nonmultiple");
|
|
testOptionSelection(3, 4, "true", "nonmultiple");
|
|
|
|
debug("Dragging with rangeSelectionKey");
|
|
eventSender.mouseDown();
|
|
eventSender.mouseDown(0, "rangeSelectionKey");
|
|
eventSender.mouseMoveTo(x, y);
|
|
eventSender.mouseUp(0, "rangeSelectionKey");
|
|
testOptionSelection(0, 1, "true", "nonmultiple");
|
|
testOptionSelection(1, 4, "false", "nonmultiple");
|
|
|
|
} else {
|
|
debug("Test manually if options are getting selected by dragging on the select element.");
|
|
}
|
|
|
|
function testOptionSelection(start, end, criteria, element) {
|
|
for (var i = start; i < end; i++) {
|
|
shouldBe("document.getElementById(\"" + element + "\").options[" + i + "].selected", criteria);
|
|
}
|
|
}
|
|
|
|
successfullyParsed = true;
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|