mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
187 lines
6.7 KiB
JavaScript
187 lines
6.7 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
// Tests the new add-on tab
|
|
|
|
var gProvider;
|
|
|
|
function loadPage(aURL, aCallback) {
|
|
gBrowser.selectedTab = gBrowser.addTab();
|
|
gBrowser.loadURI(aURL);
|
|
gBrowser.addEventListener("AddonDisplayed", function(event) {
|
|
gBrowser.removeEventListener("AddonDisplayed", arguments.callee, false);
|
|
|
|
aCallback(gBrowser.selectedTab);
|
|
});
|
|
}
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
|
|
gProvider = new MockProvider();
|
|
|
|
gProvider.createAddons([{
|
|
id: "addon1@tests.mozilla.org",
|
|
name: "Test 1",
|
|
version: "5.3",
|
|
userDisabled: true,
|
|
operationsRequiringRestart: AddonManager.OP_NEEDS_RESTART_NONE
|
|
}, {
|
|
id: "addon2@tests.mozilla.org",
|
|
name: "Test 2",
|
|
version: "7.1",
|
|
creator: "Dave Townsend",
|
|
userDisabled: true
|
|
}]);
|
|
|
|
run_next_test();
|
|
}
|
|
|
|
function end_test() {
|
|
finish();
|
|
}
|
|
|
|
// Tests that ignoring a restartless add-on works
|
|
add_test(function() {
|
|
loadPage("about:newaddon?id=addon1@tests.mozilla.org", function(aTab) {
|
|
var doc = aTab.linkedBrowser.contentDocument;
|
|
is(doc.getElementById("name").value, "Test 1 5.3", "Should say the right name");
|
|
|
|
is_element_hidden(doc.getElementById("author"), "Should be no author displayed");
|
|
is_element_hidden(doc.getElementById("location"), "Should be no location displayed");
|
|
|
|
is(doc.getElementById("buttonDeck").selectedPanel, doc.getElementById("continuePanel"),
|
|
"Should be showing the right buttons");
|
|
|
|
EventUtils.synthesizeMouseAtCenter(doc.getElementById("continue-button"),
|
|
{}, aTab.linkedBrowser.contentWindow);
|
|
|
|
is(gBrowser.tabs.length, 1, "Page should have been closed");
|
|
|
|
AddonManager.getAddonByID("addon1@tests.mozilla.org", function(aAddon) {
|
|
ok(aAddon.userDisabled, "Add-on should not have been enabled");
|
|
|
|
ok(!aAddon.isActive, "Add-on should not be running");
|
|
|
|
run_next_test();
|
|
});
|
|
});
|
|
});
|
|
|
|
// Tests that enabling a restartless add-on works
|
|
add_test(function() {
|
|
loadPage("about:newaddon?id=addon1@tests.mozilla.org", function(aTab) {
|
|
var doc = aTab.linkedBrowser.contentDocument;
|
|
is(doc.getElementById("name").value, "Test 1 5.3", "Should say the right name");
|
|
|
|
is_element_hidden(doc.getElementById("author"), "Should be no author displayed");
|
|
is_element_hidden(doc.getElementById("location"), "Should be no location displayed");
|
|
|
|
is(doc.getElementById("buttonDeck").selectedPanel, doc.getElementById("continuePanel"),
|
|
"Should be showing the right buttons");
|
|
|
|
EventUtils.synthesizeMouseAtCenter(doc.getElementById("allow"),
|
|
{}, aTab.linkedBrowser.contentWindow);
|
|
|
|
EventUtils.synthesizeMouseAtCenter(doc.getElementById("continue-button"),
|
|
{}, aTab.linkedBrowser.contentWindow);
|
|
|
|
is(gBrowser.tabs.length, 1, "Page should have been closed");
|
|
|
|
AddonManager.getAddonByID("addon1@tests.mozilla.org", function(aAddon) {
|
|
ok(!aAddon.userDisabled, "Add-on should now have been enabled");
|
|
|
|
ok(aAddon.isActive, "Add-on should now be running");
|
|
|
|
run_next_test();
|
|
});
|
|
});
|
|
});
|
|
|
|
// Tests that ignoring a non-restartless add-on works
|
|
add_test(function() {
|
|
loadPage("about:newaddon?id=addon2@tests.mozilla.org", function(aTab) {
|
|
var doc = aTab.linkedBrowser.contentDocument;
|
|
is(doc.getElementById("name").value, "Test 2 7.1", "Should say the right name");
|
|
|
|
is_element_visible(doc.getElementById("author"), "Should be an author displayed");
|
|
is(doc.getElementById("author").value, "By Dave Townsend", "Should have the right author");
|
|
is_element_hidden(doc.getElementById("location"), "Should be no location displayed");
|
|
|
|
is(doc.getElementById("buttonDeck").selectedPanel, doc.getElementById("continuePanel"),
|
|
"Should be showing the right buttons");
|
|
|
|
EventUtils.synthesizeMouseAtCenter(doc.getElementById("continue-button"),
|
|
{}, aTab.linkedBrowser.contentWindow);
|
|
|
|
is(gBrowser.tabs.length, 1, "Page should have been closed");
|
|
|
|
AddonManager.getAddonByID("addon2@tests.mozilla.org", function(aAddon) {
|
|
ok(aAddon.userDisabled, "Add-on should not have been enabled");
|
|
|
|
ok(!aAddon.isActive, "Add-on should not be running");
|
|
|
|
run_next_test();
|
|
});
|
|
});
|
|
});
|
|
|
|
// Tests that enabling a non-restartless add-on works
|
|
add_test(function() {
|
|
loadPage("about:newaddon?id=addon2@tests.mozilla.org", function(aTab) {
|
|
var doc = aTab.linkedBrowser.contentDocument;
|
|
is(doc.getElementById("name").value, "Test 2 7.1", "Should say the right name");
|
|
|
|
is_element_visible(doc.getElementById("author"), "Should be an author displayed");
|
|
is(doc.getElementById("author").value, "By Dave Townsend", "Should have the right author");
|
|
is_element_hidden(doc.getElementById("location"), "Should be no location displayed");
|
|
|
|
is(doc.getElementById("buttonDeck").selectedPanel, doc.getElementById("continuePanel"),
|
|
"Should be showing the right buttons");
|
|
|
|
EventUtils.synthesizeMouseAtCenter(doc.getElementById("allow"),
|
|
{}, aTab.linkedBrowser.contentWindow);
|
|
|
|
EventUtils.synthesizeMouseAtCenter(doc.getElementById("continue-button"),
|
|
{}, aTab.linkedBrowser.contentWindow);
|
|
|
|
is(doc.getElementById("buttonDeck").selectedPanel, doc.getElementById("restartPanel"),
|
|
"Should be showing the right buttons");
|
|
|
|
AddonManager.getAddonByID("addon2@tests.mozilla.org", function(aAddon) {
|
|
ok(!aAddon.userDisabled, "Add-on should now have been enabled");
|
|
|
|
ok(!aAddon.isActive, "Add-on should not be running");
|
|
|
|
ok(doc.getElementById("allow").disabled, "Should have disabled checkbox");
|
|
|
|
EventUtils.synthesizeMouseAtCenter(doc.getElementById("cancel-button"),
|
|
{}, aTab.linkedBrowser.contentWindow);
|
|
|
|
is(doc.getElementById("buttonDeck").selectedPanel, doc.getElementById("continuePanel"),
|
|
"Should be showing the right buttons");
|
|
|
|
ok(!doc.getElementById("allow").disabled, "Should have enabled checkbox");
|
|
|
|
ok(aAddon.userDisabled, "Add-on should not have been enabled");
|
|
|
|
ok(!aAddon.isActive, "Add-on should not be running");
|
|
|
|
EventUtils.synthesizeMouseAtCenter(doc.getElementById("allow"),
|
|
{}, aTab.linkedBrowser.contentWindow);
|
|
|
|
EventUtils.synthesizeMouseAtCenter(doc.getElementById("continue-button"),
|
|
{}, aTab.linkedBrowser.contentWindow);
|
|
|
|
ok(aAddon.userDisabled, "Add-on should not have been enabled");
|
|
|
|
ok(!aAddon.isActive, "Add-on should not be running");
|
|
|
|
is(gBrowser.tabs.length, 1, "Page should have been closed");
|
|
|
|
run_next_test();
|
|
});
|
|
});
|
|
});
|