|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 "use strict"; |
|
4 |
|
5 // from MouseEvents.h |
|
6 const leftButtonFlag = 1; |
|
7 const rightButtonFlag = 2; |
|
8 |
|
9 gTests.push({ |
|
10 desc: "Test native mouse events", |
|
11 run: function () { |
|
12 let tab = yield addTab("about:mozilla"); |
|
13 |
|
14 // Mousemove. |
|
15 let waitForMove = waitForEvent(document, "mousemove"); |
|
16 synthesizeNativeMouseMove(tab.browser, 1, 1); |
|
17 synthesizeNativeMouseMove(tab.browser, 100, 100); |
|
18 let mousemove = yield waitForMove; |
|
19 is(mousemove.cancelable, false, "mousemove is not cancelable"); |
|
20 is(mousemove.buttons, 0, "no buttons are down"); |
|
21 |
|
22 // Left button down. |
|
23 let waitForDown1 = waitForEvent(document, "mousedown"); |
|
24 synthesizeNativeMouseLDown(tab.browser, 100, 100); |
|
25 let mousedown1 = yield waitForDown1; |
|
26 is(mousedown1.cancelable, true, "mousedown is cancelable"); |
|
27 is(mousedown1.buttons, leftButtonFlag, "left button is down"); |
|
28 |
|
29 // Right button down. |
|
30 let waitForDown2 = waitForEvent(document, "mousedown"); |
|
31 synthesizeNativeMouseRDown(tab.browser, 100, 100); |
|
32 let mousedown2 = yield waitForDown2; |
|
33 is(mousedown2.buttons, leftButtonFlag | rightButtonFlag, "both buttons are down"); |
|
34 |
|
35 // Left button up. |
|
36 let waitForUp1 = waitForEvent(document, "mouseup"); |
|
37 synthesizeNativeMouseLUp(tab.browser, 100, 100); |
|
38 let mouseup1 = yield waitForUp1; |
|
39 is(mouseup1.buttons, rightButtonFlag, "right button is down"); |
|
40 |
|
41 // Right button up. |
|
42 let waitForUp2 = waitForEvent(document, "mouseup"); |
|
43 synthesizeNativeMouseRUp(tab.browser, 100, 100); |
|
44 let mouseup2 = yield waitForUp2; |
|
45 is(mouseup2.buttons, 0, "no buttons are down"); |
|
46 |
|
47 Browser.closeTab(tab, { forceClose: true }); |
|
48 } |
|
49 }); |
|
50 |
|
51 let test = runTests; |