gecko/toolkit/mozapps/extensions/test/xpinstall/browser_bug638292.js

64 lines
2.1 KiB
JavaScript

// ----------------------------------------------------------------------------
// Test whether an InstallTrigger.enabled is working
function test() {
waitForExplicitFinish();
gBrowser.selectedTab = gBrowser.addTab();
gBrowser.selectedBrowser.addEventListener("load", function() {
gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true);
waitForFocus(page_loaded, gBrowser.contentWindow);
}, true);
gBrowser.loadURI(TESTROOT + "bug638292.html");
}
function check_load(aCallback) {
gBrowser.addEventListener("load", function(aEvent) {
if (!gBrowser.browsers[2] ||
aEvent.target != gBrowser.browsers[2].contentDocument) {
// SeaMonkey tabbrowser needs to deal with additional loads.
if (navigator.userAgent.match(/ SeaMonkey\//))
info("Ignoring unrelated load on SeaMonkey. (Expected 2-3 times.)");
else
ok(false, "Ignoring unrelated load on Firefox. (Should never happen!)");
return;
}
gBrowser.removeEventListener("load", arguments.callee, true);
// Let the load handler complete
executeSoon(function() {
var doc = gBrowser.browsers[2].contentDocument;
is(doc.getElementById("enabled").textContent, "true", "installTrigger should have been enabled");
// Focus the old tab
gBrowser.selectedTab = gBrowser.tabs[1];
waitForFocus(function() {
// Close the new tab
gBrowser.removeTab(gBrowser.tabs[2]);
aCallback();
}, gBrowser.contentWindow);
});
}, true);
}
function page_loaded() {
var doc = gBrowser.contentDocument;
info("Clicking link 1");
EventUtils.synthesizeMouseAtCenter(doc.getElementById("link1"), { }, gBrowser.contentWindow);
check_load(function() {
info("Clicking link 2");
EventUtils.synthesizeMouseAtCenter(doc.getElementById("link2"), { }, gBrowser.contentWindow);
check_load(function() {
info("Clicking link 3");
EventUtils.synthesizeMouseAtCenter(doc.getElementById("link3"), { button: 1 }, gBrowser.contentWindow);
check_load(function() {
gBrowser.removeCurrentTab();
finish();
});
});
});
}