summaryrefslogtreecommitdiffstats
path: root/toolkit/content/tests/chrome/test_bug624329.xul
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/content/tests/chrome/test_bug624329.xul')
-rw-r--r--toolkit/content/tests/chrome/test_bug624329.xul160
1 files changed, 0 insertions, 160 deletions
diff --git a/toolkit/content/tests/chrome/test_bug624329.xul b/toolkit/content/tests/chrome/test_bug624329.xul
deleted file mode 100644
index 893b38687..000000000
--- a/toolkit/content/tests/chrome/test_bug624329.xul
+++ /dev/null
@@ -1,160 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
-<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=624329
--->
-<window title="Mozilla Bug 624329 context menu position"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
- <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/>
-
- <!-- test results are displayed in the html:body -->
- <body xmlns="http://www.w3.org/1999/xhtml"
- onload="openTestWindow()">
- <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=624329"
- target="_blank">Mozilla Bug 624329</a>
- </body>
-
- <!-- test code goes here -->
- <script type="application/javascript">
- <![CDATA[
- /** Test for Bug 624329 **/
-
-SimpleTest.waitForExplicitFinish();
-
-var win;
-var timeoutID;
-var menu;
-
-function openTestWindow() {
- win = open("bug624329_window.xul", "_blank", "width=300,resizable=yes,chrome");
- // Close our window if the test times out so that it doesn't interfere
- // with later tests.
- timeoutID = setTimeout(function () {
- ok(false, "Test timed out.");
- // Provide some time for a screenshot
- setTimeout(finish, 1000);
- }, 20000);
-}
-
-function listenOnce(event, callback) {
- win.addEventListener(event, function listener() {
- win.removeEventListener(event, listener, false);
- callback();
- }, false);
-}
-
-function childFocused() {
- // maximizing the window is a simple way to ensure that the menu is near
- // the right edge of the screen.
-
- listenOnce("resize", childResized);
- win.maximize();
-}
-
-function childResized() {
- const isOSXLion = navigator.userAgent.indexOf("Mac OS X 10.7") != -1;
- const isOSXMtnLion = navigator.userAgent.indexOf("Mac OS X 10.8") != -1;
- const isOSXMavericks = navigator.userAgent.indexOf("Mac OS X 10.9") != -1;
- const isOSXYosemite = navigator.userAgent.indexOf("Mac OS X 10.10") != -1;
- if (isOSXLion || isOSXMtnLion || isOSXMavericks || isOSXYosemite) {
- todo_is(win.windowState, win.STATE_MAXIMIZED,
- "A resize before being maximized breaks this test on 10.7 and 10.8 and 10.9 and 10.10");
- finish();
- return;
- }
-
- is(win.windowState, win.STATE_MAXIMIZED,
- "window should be maximized");
-
- isnot(win.innerWidth, 300,
- "window inner width should have changed");
-
- openContextMenu();
-}
-
-function openContextMenu() {
- var mouseX = win.innerWidth - 10;
- var mouseY = 10;
-
- menu = win.document.getElementById("menu");
- var screenX = menu.boxObject.screenX;
- var screenY = menu.boxObject.screenY;
- var utils =
- win.QueryInterface(Components.interfaces.nsIInterfaceRequestor).
- getInterface(Components.interfaces.nsIDOMWindowUtils);
-
- utils.sendMouseEvent("contextmenu", mouseX, mouseY, 2, 0, 0);
-
- var interval = setInterval(checkMoved, 200);
- function checkMoved() {
- if (menu.boxObject.screenX != screenX ||
- menu.boxObject.screenY != screenY) {
- clearInterval(interval);
- // Wait further to check that the window does not move again.
- setTimeout(checkPosition, 1000);
- }
- }
-
- function checkPosition() {
- var menubox = menu.boxObject;
- var winbox = win.document.documentElement.boxObject;
- var platformIsMac = navigator.userAgent.indexOf("Mac") > -1;
-
- var x = menubox.screenX - winbox.screenX;
- var y = menubox.screenY - winbox.screenY;
-
- if (platformIsMac)
- {
- // This check is alterered slightly for OSX which adds padding to the top
- // and bottom of its context menus. The menu position calculation must
- // be changed to allow for the pointer to be outside this padding
- // when the menu opens.
- // (Bug 1075089)
- ok(y + 6 >= mouseY,
- "menu top " + (y + 6) + " should be below click point " + mouseY);
- }
- else
- {
- ok(y >= mouseY,
- "menu top " + y + " should be below click point " + mouseY);
- }
-
- ok(y <= mouseY + 20,
- "menu top " + y + " should not be too far below click point " + mouseY);
-
- ok(x < mouseX,
- "menu left " + x + " should be left of click point " + mouseX);
- var right = x + menubox.width;
-
- if (platformIsMac) {
- // Rather than be constrained by the right hand screen edge, OSX menus flip
- // horizontally and appear to the left of the mouse pointer
- ok(right < mouseX,
- "menu right " + right + " should be left of click point " + mouseX);
- }
- else {
- ok(right > mouseX,
- "menu right " + right + " should be right of click point " + mouseX);
- }
-
- clearTimeout(timeoutID);
- finish();
- }
-
-}
-
-function finish() {
- if (menu && navigator.platform.indexOf("Win") >= 0) {
- todo(false, "Should not have to hide popup before closing its window");
- // This avoids mochitest "Unable to restore focus" errors (bug 670053).
- menu.hidePopup();
- }
- win.close();
- SimpleTest.finish();
-}
-
- ]]>
- </script>
-</window>