| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE html> | |
| 2 <html> | |
| 3 <head> | |
| 4 <meta charset="utf-8"> | |
| 5 <script src="../../resources/js-test.js"></script> | |
| 6 <title></title> | |
| 7 </head> | |
| 8 <body> | |
| 9 <p>Select multiple options with mouse drag with no. of options less than the siz
e attribute</p> | |
| 10 <p>Also test mouse drag on select element without multiple attribute select only
the option under mouse</p> | |
| 11 | |
| 12 <select multiple="multiple" size="7" id="selectId"> | |
| 13 <option value="P1">P1</option> | |
| 14 <option value="P2">P2</option> | |
| 15 <option value="P3">P3</option> | |
| 16 <option value="P4">P4</option> | |
| 17 <option value="P5">P5</option> | |
| 18 </select> | |
| 19 | |
| 20 <select size="7" id="nonmultiple"> | |
| 21 <option value="P1">P1</option> | |
| 22 <option value="P2">P2</option> | |
| 23 <option value="P3">P3</option> | |
| 24 <option value="P4">P4</option> | |
| 25 <option value="P5">P5</option> | |
| 26 </select> | |
| 27 | |
| 28 <div id="console"></div> | |
| 29 <script> | |
| 30 if (window.eventSender) { | |
| 31 debug("Test for select element with multiple attribute"); | |
| 32 var selectObject = document.getElementById("selectId"); | |
| 33 | |
| 34 var optionHeight = selectObject.offsetHeight / selectObject.size; | |
| 35 var x = selectObject.offsetLeft + selectObject.offsetWidth / 2; | |
| 36 var y = selectObject.offsetTop + optionHeight / 2; | |
| 37 | |
| 38 eventSender.dragMode = false; | |
| 39 eventSender.mouseMoveTo(x, y); | |
| 40 eventSender.mouseDown(); | |
| 41 | |
| 42 debug("Dragging down"); | |
| 43 eventSender.mouseDown(); | |
| 44 eventSender.mouseMoveTo(x, y + (optionHeight * 3)); | |
| 45 eventSender.mouseUp(); | |
| 46 testOptionSelection(0, 4, "true", "selectId"); | |
| 47 | |
| 48 debug("Dragging up"); | |
| 49 eventSender.mouseDown(); | |
| 50 eventSender.mouseMoveTo(x, y); | |
| 51 eventSender.mouseUp(); | |
| 52 testOptionSelection(0, 4, "true", "selectId"); | |
| 53 | |
| 54 debug("Dragging with addSelectionKey") | |
| 55 eventSender.mouseDown(); | |
| 56 eventSender.mouseUp(); | |
| 57 eventSender.mouseMoveTo(x, y + (optionHeight * 2)); | |
| 58 eventSender.mouseDown(0, ["addSelectionKey"]); | |
| 59 eventSender.mouseMoveTo(x, y + (optionHeight * 4)); | |
| 60 eventSender.mouseUp(0, ["addSelectionKey"]); | |
| 61 testOptionSelection(0, 1, "true", "selectId"); | |
| 62 testOptionSelection(2, 5, "true", "selectId"); | |
| 63 | |
| 64 debug("Dragging with rangeSelectionKey"); | |
| 65 eventSender.mouseDown(); | |
| 66 eventSender.mouseUp(); | |
| 67 eventSender.mouseMoveTo(x, y + (optionHeight * 2)); | |
| 68 eventSender.mouseDown(0, ["rangeSelectionKey"]); | |
| 69 eventSender.mouseMoveTo(x, y); | |
| 70 eventSender.mouseUp(0, ["rangeSelectionKey"]); | |
| 71 testOptionSelection(0, 4, "true", "selectId"); | |
| 72 | |
| 73 debug("Test for select element without multiple attribute"); | |
| 74 var nonMultipleObject = document.getElementById("nonmultiple"); | |
| 75 var optionHeight = nonMultipleObject.offsetHeight / nonMultipleObject.size; | |
| 76 x = nonMultipleObject.offsetLeft + nonMultipleObject.offsetWidth / 2; | |
| 77 y = nonMultipleObject.offsetTop + optionHeight / 2; | |
| 78 | |
| 79 eventSender.dragMode = false; | |
| 80 eventSender.mouseMoveTo(x, y); | |
| 81 eventSender.mouseDown(); | |
| 82 | |
| 83 debug("Dragging down"); | |
| 84 eventSender.mouseDown(); | |
| 85 eventSender.mouseMoveTo(x, y + (optionHeight * 3)); | |
| 86 eventSender.mouseUp(); | |
| 87 testOptionSelection(0, 3, "false", "nonmultiple"); | |
| 88 testOptionSelection(3, 4, "true", "nonmultiple"); | |
| 89 | |
| 90 debug("Dragging up"); | |
| 91 eventSender.mouseDown(); | |
| 92 eventSender.mouseMoveTo(x, y); | |
| 93 eventSender.mouseUp(); | |
| 94 testOptionSelection(0, 1, "true", "nonmultiple"); | |
| 95 testOptionSelection(1, 4, "false", "nonmultiple"); | |
| 96 | |
| 97 debug("Dragging with addSelectionKey") | |
| 98 eventSender.mouseDown(); | |
| 99 eventSender.mouseDown(0, "addSelectionKey"); | |
| 100 eventSender.mouseMoveTo(x, y + (optionHeight * 3)); | |
| 101 eventSender.mouseUp(0, "addSelectionKey"); | |
| 102 testOptionSelection(0, 3, "false", "nonmultiple"); | |
| 103 testOptionSelection(3, 4, "true", "nonmultiple"); | |
| 104 | |
| 105 debug("Dragging with rangeSelectionKey"); | |
| 106 eventSender.mouseDown(); | |
| 107 eventSender.mouseDown(0, "rangeSelectionKey"); | |
| 108 eventSender.mouseMoveTo(x, y); | |
| 109 eventSender.mouseUp(0, "rangeSelectionKey"); | |
| 110 testOptionSelection(0, 1, "true", "nonmultiple"); | |
| 111 testOptionSelection(1, 4, "false", "nonmultiple"); | |
| 112 | |
| 113 } else { | |
| 114 debug("Test manually if options are getting selected by dragging on the sele
ct element."); | |
| 115 } | |
| 116 | |
| 117 function testOptionSelection(start, end, criteria, element) { | |
| 118 for (var i = start; i < end; i++) { | |
| 119 shouldBe("document.getElementById(\"" + element + "\").options[" + i + "
].selected", criteria); | |
| 120 } | |
| 121 } | |
| 122 | |
| 123 successfullyParsed = true; | |
| 124 </script> | |
| 125 </body> | |
| 126 </html> | |
| OLD | NEW |