|
1 <?xml version="1.0"?> |
|
2 <?xml-stylesheet type="text/css" href="chrome://global/skin"?> |
|
3 <?xml-stylesheet type="text/css" |
|
4 href="chrome://mochikit/content/tests/SimpleTest/test.css"?> |
|
5 <!-- |
|
6 https://bugzilla.mozilla.org/show_bug.cgi?id=617528 |
|
7 --> |
|
8 <window title="Mozilla Bug 617528" |
|
9 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> |
|
10 |
|
11 <script type="application/javascript" |
|
12 src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> |
|
13 |
|
14 <body xmlns="http://www.w3.org/1999/xhtml"> |
|
15 <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=617528" |
|
16 target="_blank">Mozilla Bug 617528</a> |
|
17 </body> |
|
18 |
|
19 <script type="application/javascript"><![CDATA[ |
|
20 var _window; |
|
21 var browser; |
|
22 |
|
23 function start() { |
|
24 _window = window.open("window_bug617528.xul", "_new", "chrome"); |
|
25 _window.addEventListener("load", onLoad, false); |
|
26 } |
|
27 |
|
28 function onLoad() { |
|
29 _window.removeEventListener("load", onLoad, false); |
|
30 |
|
31 browser = _window.document.getElementById("browser"); |
|
32 browser.addEventListener("pageshow", onPageShow, false); |
|
33 |
|
34 var uri='data:text/html,\ |
|
35 <html>\ |
|
36 <body>\ |
|
37 <div oncontextmenu="event.preventDefault()">\ |
|
38 <input id="node" type="text" value="Click here"></input>\ |
|
39 </div>\ |
|
40 </body>\ |
|
41 </html>'; |
|
42 browser.loadURI(uri); |
|
43 } |
|
44 |
|
45 function onPageShow() { |
|
46 browser.removeEventListener("pageshow", onPageShow, true); |
|
47 SimpleTest.executeSoon(doTest); |
|
48 } |
|
49 |
|
50 function onContextMenu1(event) { |
|
51 is(event.defaultPrevented, true, |
|
52 "expected event.defaultPrevented to be true (1)"); |
|
53 is(event.target.localName, "input", |
|
54 "expected event.target.localName to be 'input' (1)"); |
|
55 is(event.originalTarget.localName, "div", |
|
56 "expected event.originalTarget.localName to be 'div' (1)"); |
|
57 } |
|
58 |
|
59 function onContextMenu2(event) { |
|
60 is(event.defaultPrevented, false, |
|
61 "expected event.defaultPrevented to be false (2)"); |
|
62 is(event.target.localName, "input", |
|
63 "expected event.target.localName to be 'input' (2)"); |
|
64 is(event.originalTarget.localName, "div", |
|
65 "expected event.originalTarget.localName to be 'div' (2)"); |
|
66 } |
|
67 |
|
68 function doTest() { |
|
69 var win = browser.contentWindow; |
|
70 win.focus(); |
|
71 var node = win.document.getElementById("node"); |
|
72 var rect = node.getBoundingClientRect(); |
|
73 var left = rect.left + rect.width / 2; |
|
74 var top = rect.top + rect.height / 2; |
|
75 |
|
76 var wu = win.QueryInterface(Components.interfaces.nsIInterfaceRequestor) |
|
77 .getInterface(Components.interfaces.nsIDOMWindowUtils); |
|
78 |
|
79 browser.addEventListener("contextmenu", onContextMenu1, false); |
|
80 wu.sendMouseEvent("contextmenu", left, top, 2, 1, 0); |
|
81 browser.removeEventListener("contextmenu", onContextMenu1, false); |
|
82 |
|
83 browser.addEventListener("contextmenu", onContextMenu2, false); |
|
84 var shiftMask = Components.interfaces.nsIDOMEvent.SHIFT_MASK; |
|
85 wu.sendMouseEvent("contextmenu", left, top, 2, 1, shiftMask); |
|
86 browser.removeEventListener("contextmenu", onContextMenu2, false); |
|
87 |
|
88 _window.close(); |
|
89 SimpleTest.finish(); |
|
90 } |
|
91 |
|
92 addLoadEvent(start); |
|
93 SimpleTest.waitForExplicitFinish(); |
|
94 ]]></script> |
|
95 </window> |