browser_bug703210.js (1535B)
1 add_task(async function () { 2 const url = 3 "data:text/html," + 4 "<html onmousemove='event.stopPropagation()'" + 5 " onmouseenter='event.stopPropagation()' onmouseleave='event.stopPropagation()'" + 6 " onmouseover='event.stopPropagation()' onmouseout='event.stopPropagation()'>" + 7 '<p id="p1" title="tooltip is here">This paragraph has a tooltip.</p>' + 8 '<p id="p2">This paragraph doesn\'t have tooltip.</p></html>'; 9 10 let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, url); 11 let browser = gBrowser.selectedBrowser; 12 13 await SpecialPowers.pushPrefEnv({ set: [["ui.tooltip.delay_ms", 0]] }); 14 15 let popupShownPromise = BrowserTestUtils.waitForEvent( 16 document, 17 "popupshown", 18 false, 19 event => { 20 is(event.originalTarget.localName, "tooltip", "tooltip is showing"); 21 return true; 22 } 23 ); 24 let popupHiddenPromise = BrowserTestUtils.waitForEvent( 25 document, 26 "popuphidden", 27 false, 28 event => { 29 is(event.originalTarget.localName, "tooltip", "tooltip is hidden"); 30 return true; 31 } 32 ); 33 34 // Send a mousemove at a known position to start the test. 35 await BrowserTestUtils.synthesizeMouseAtCenter( 36 "#p2", 37 { type: "mousemove" }, 38 browser 39 ); 40 await BrowserTestUtils.synthesizeMouseAtCenter( 41 "#p1", 42 { type: "mousemove" }, 43 browser 44 ); 45 await popupShownPromise; 46 await BrowserTestUtils.synthesizeMouseAtCenter( 47 "#p2", 48 { type: "mousemove" }, 49 browser 50 ); 51 await popupHiddenPromise; 52 53 gBrowser.removeCurrentTab(); 54 });