1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/events/test/test_bug617528.xul Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,95 @@ 1.4 +<?xml version="1.0"?> 1.5 +<?xml-stylesheet type="text/css" href="chrome://global/skin"?> 1.6 +<?xml-stylesheet type="text/css" 1.7 + href="chrome://mochikit/content/tests/SimpleTest/test.css"?> 1.8 +<!-- 1.9 +https://bugzilla.mozilla.org/show_bug.cgi?id=617528 1.10 +--> 1.11 +<window title="Mozilla Bug 617528" 1.12 + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 1.13 + 1.14 + <script type="application/javascript" 1.15 + src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> 1.16 + 1.17 + <body xmlns="http://www.w3.org/1999/xhtml"> 1.18 + <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=617528" 1.19 + target="_blank">Mozilla Bug 617528</a> 1.20 + </body> 1.21 + 1.22 + <script type="application/javascript"><![CDATA[ 1.23 + var _window; 1.24 + var browser; 1.25 + 1.26 + function start() { 1.27 + _window = window.open("window_bug617528.xul", "_new", "chrome"); 1.28 + _window.addEventListener("load", onLoad, false); 1.29 + } 1.30 + 1.31 + function onLoad() { 1.32 + _window.removeEventListener("load", onLoad, false); 1.33 + 1.34 + browser = _window.document.getElementById("browser"); 1.35 + browser.addEventListener("pageshow", onPageShow, false); 1.36 + 1.37 + var uri='data:text/html,\ 1.38 +<html>\ 1.39 + <body>\ 1.40 + <div oncontextmenu="event.preventDefault()">\ 1.41 + <input id="node" type="text" value="Click here"></input>\ 1.42 + </div>\ 1.43 + </body>\ 1.44 +</html>'; 1.45 + browser.loadURI(uri); 1.46 + } 1.47 + 1.48 + function onPageShow() { 1.49 + browser.removeEventListener("pageshow", onPageShow, true); 1.50 + SimpleTest.executeSoon(doTest); 1.51 + } 1.52 + 1.53 + function onContextMenu1(event) { 1.54 + is(event.defaultPrevented, true, 1.55 + "expected event.defaultPrevented to be true (1)"); 1.56 + is(event.target.localName, "input", 1.57 + "expected event.target.localName to be 'input' (1)"); 1.58 + is(event.originalTarget.localName, "div", 1.59 + "expected event.originalTarget.localName to be 'div' (1)"); 1.60 + } 1.61 + 1.62 + function onContextMenu2(event) { 1.63 + is(event.defaultPrevented, false, 1.64 + "expected event.defaultPrevented to be false (2)"); 1.65 + is(event.target.localName, "input", 1.66 + "expected event.target.localName to be 'input' (2)"); 1.67 + is(event.originalTarget.localName, "div", 1.68 + "expected event.originalTarget.localName to be 'div' (2)"); 1.69 + } 1.70 + 1.71 + function doTest() { 1.72 + var win = browser.contentWindow; 1.73 + win.focus(); 1.74 + var node = win.document.getElementById("node"); 1.75 + var rect = node.getBoundingClientRect(); 1.76 + var left = rect.left + rect.width / 2; 1.77 + var top = rect.top + rect.height / 2; 1.78 + 1.79 + var wu = win.QueryInterface(Components.interfaces.nsIInterfaceRequestor) 1.80 + .getInterface(Components.interfaces.nsIDOMWindowUtils); 1.81 + 1.82 + browser.addEventListener("contextmenu", onContextMenu1, false); 1.83 + wu.sendMouseEvent("contextmenu", left, top, 2, 1, 0); 1.84 + browser.removeEventListener("contextmenu", onContextMenu1, false); 1.85 + 1.86 + browser.addEventListener("contextmenu", onContextMenu2, false); 1.87 + var shiftMask = Components.interfaces.nsIDOMEvent.SHIFT_MASK; 1.88 + wu.sendMouseEvent("contextmenu", left, top, 2, 1, shiftMask); 1.89 + browser.removeEventListener("contextmenu", onContextMenu2, false); 1.90 + 1.91 + _window.close(); 1.92 + SimpleTest.finish(); 1.93 + } 1.94 + 1.95 + addLoadEvent(start); 1.96 + SimpleTest.waitForExplicitFinish(); 1.97 + ]]></script> 1.98 +</window>