diff options
Diffstat (limited to 'toolkit/content/tests/chrome/test_bug624329.xul')
-rw-r--r-- | toolkit/content/tests/chrome/test_bug624329.xul | 160 |
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> |