diff -r 000000000000 -r 6474c204b198 layout/xul/test/browser_bug685470.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/layout/xul/test/browser_bug685470.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,51 @@ +function test() { + waitForExplicitFinish(); + + gBrowser.selectedTab = gBrowser.addTab(); + + SpecialPowers.setIntPref("ui.tooltipDelay", 0); + + var popup = false; + var doc; + var win; + var p1; + + let onPopupShown = function(aEvent) { + popup = true; + } + + // test that a mouse click prior to the tooltip appearing blocks it + let runTest = function() { + EventUtils.synthesizeMouseAtCenter(p1, { type: "mousemove" }, win); + EventUtils.sendMouseEvent({type:'mousedown'}, p1, win); + EventUtils.sendMouseEvent({type:'mouseup'}, p1, win); + + setTimeout(function() { + is(popup, false, "shouldn't get tooltip after click"); + + document.removeEventListener("popupshown", onPopupShown, true); + SpecialPowers.clearUserPref("ui.tooltipDelay"); + + gBrowser.removeCurrentTab(); + finish(); + }, 200); + } + + let onLoad = function (aEvent) { + doc = gBrowser.contentDocument; + win = gBrowser.contentWindow; + p1 = doc.getElementById("p1"); + + document.addEventListener("popupshown", onPopupShown, true); + + runTest(); + } + + gBrowser.selectedBrowser.addEventListener("load", function loadListener() { + gBrowser.selectedBrowser.removeEventListener("load", loadListener, true); + setTimeout(onLoad, 0); + }, true); + + content.location = "data:text/html," + + "

This paragraph has a tooltip.

"; +}