diff -r 000000000000 -r 6474c204b198 layout/xul/test/browser_bug703210.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/layout/xul/test/browser_bug703210.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,72 @@ +function test() { + waitForExplicitFinish(); + + gBrowser.selectedTab = gBrowser.addTab(); + + SpecialPowers.setIntPref("ui.tooltipDelay", 0); + + let doStopPropagation = function (aEvent) + { + aEvent.stopPropagation(); + } + + let onPopupShown = function (aEvent) + { + is(aEvent.originalTarget.localName, "tooltip", "tooltip is showing"); + + let doc = gBrowser.contentDocument; + let win = gBrowser.contentWindow; + let p2 = doc.getElementById("p2"); + setTimeout(function () { + EventUtils.synthesizeMouseAtCenter(p2, { type: "mousemove" }, win); }, 0); + } + + let onPopupHiding = function (aEvent) + { + is(aEvent.originalTarget.localName, "tooltip", "tooltip is hiding"); + + let doc = gBrowser.contentDocument; + + doc.removeEventListener("mousemove", doStopPropagation, true); + doc.removeEventListener("mouseenter", doStopPropagation, true); + doc.removeEventListener("mouseleave", doStopPropagation, true); + doc.removeEventListener("mouseover", doStopPropagation, true); + doc.removeEventListener("mouseout", doStopPropagation, true); + document.removeEventListener("popupshown", onPopupShown, true); + document.removeEventListener("popuphiding", onPopupHiding, true); + + SpecialPowers.clearUserPref("ui.tooltipDelay"); + + gBrowser.removeCurrentTab(); + finish(); + } + + let onLoad = function (aEvent) + { + let doc = gBrowser.contentDocument; + let win = gBrowser.contentWindow; + let p1 = doc.getElementById("p1"); + let p2 = doc.getElementById("p2"); + + EventUtils.synthesizeMouseAtCenter(p2, { type: "mousemove" }, win); + + doc.addEventListener("mousemove", doStopPropagation, true); + doc.addEventListener("mouseenter", doStopPropagation, true); + doc.addEventListener("mouseleave", doStopPropagation, true); + doc.addEventListener("mouseover", doStopPropagation, true); + doc.addEventListener("mouseout", doStopPropagation, true); + document.addEventListener("popupshown", onPopupShown, true); + document.addEventListener("popuphiding", onPopupHiding, true); + + EventUtils.synthesizeMouseAtCenter(p1, { type: "mousemove" }, win); + } + + 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.

" + + "

This paragraph doesn't have tooltip.

"; +}