michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: michael@0: gBrowser.selectedTab = gBrowser.addTab(); michael@0: gBrowser.selectedBrowser.addEventListener("load", function () { michael@0: gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); michael@0: michael@0: content.history.pushState({}, "2", "2.html"); michael@0: michael@0: testBackButton(); michael@0: }, true); michael@0: michael@0: loadURI("http://example.com"); michael@0: } michael@0: michael@0: function testBackButton() { michael@0: var backButton = document.getElementById("back-button"); michael@0: var rect = backButton.getBoundingClientRect(); michael@0: michael@0: info("waiting for the history menu to open"); michael@0: michael@0: backButton.addEventListener("popupshown", function (event) { michael@0: backButton.removeEventListener("popupshown", arguments.callee, false); michael@0: michael@0: ok(true, "history menu opened"); michael@0: event.target.hidePopup(); michael@0: gBrowser.removeTab(gBrowser.selectedTab); michael@0: finish(); michael@0: }, false); michael@0: michael@0: EventUtils.synthesizeMouseAtCenter(backButton, {type: "mousedown"}); michael@0: EventUtils.synthesizeMouse(backButton, rect.width / 2, rect.height, {type: "mouseup"}); michael@0: }