diff options
Diffstat (limited to 'browser/base/content/test/zoom/browser_tooltip_zoom.js')
-rw-r--r-- | browser/base/content/test/zoom/browser_tooltip_zoom.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/browser/base/content/test/zoom/browser_tooltip_zoom.js b/browser/base/content/test/zoom/browser_tooltip_zoom.js new file mode 100644 index 0000000000..25388236f7 --- /dev/null +++ b/browser/base/content/test/zoom/browser_tooltip_zoom.js @@ -0,0 +1,41 @@ +add_task(async function test_zoom_tooltip() { + const TEST_PAGE_URL = 'data:text/html,<html title="tooltiptext">'; + await BrowserTestUtils.withNewTab(TEST_PAGE_URL, async function(browser) { + FullZoom.setZoom(2.0, browser); + + const tooltip = document.getElementById("remoteBrowserTooltip"); + const popupShown = new Promise(resolve => { + tooltip.addEventListener("popupshown", resolve, { once: true }); + }); + + // Fire a mousemove to trigger the tooltip. + // Margin from the anchor and stuff depends on the platform, but these + // should be big enough so that all platforms pass, but not big enough so + // that it'd pass even when messing up the coordinates would. + const DISTANCE = 300; + const EPSILON = 25; + + EventUtils.synthesizeMouse(browser, DISTANCE, DISTANCE, { + type: "mousemove", + }); + + await popupShown; + ok( + true, + `popup should be shown (coords: ${tooltip.screenX}, ${tooltip.screenY})` + ); + + isfuzzy( + tooltip.screenX, + browser.screenX + DISTANCE, + EPSILON, + "Should be at the right x position, more or less" + ); + isfuzzy( + tooltip.screenY, + browser.screenY + DISTANCE, + EPSILON, + "Should be at the right y position, more or less" + ); + }); +}); |