mirror of
https://github.com/ManchildProductions/UXP-Fixed.git
synced 2026-06-27 10:08:49 +00:00
233 lines
8.3 KiB
JavaScript
233 lines
8.3 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, aBackground = false) {
|
|
let tab = gBrowser.addTab();
|
|
if (!aBackground)
|
|
gBrowser.selectedTab = tab;
|
|
let browser = tab.linkedBrowser;
|
|
browser.loadURI(aURL);
|
|
browser.addEventListener("AddonDisplayed", function(event) {
|
|
browser.removeEventListener("AddonDisplayed", arguments.callee, false);
|
|
|
|
aCallback(tab);
|
|
});
|
|
}
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
|
|
gProvider = new MockProvider();
|
|
|
|
gProvider.createAddons([{
|
|
id: "addon1@tests.mozilla.org",
|
|
name: "Test 1",
|
|
version: "5.3",
|
|
userDisabled: true,
|
|
seen: false,
|
|
operationsRequiringRestart: AddonManager.OP_NEEDS_RESTART_NONE
|
|
}, {
|
|
id: "addon2@tests.mozilla.org",
|
|
name: "Test 2",
|
|
version: "7.1",
|
|
creator: "Dave Townsend",
|
|
userDisabled: true,
|
|
seen: false
|
|
}]);
|
|
|
|
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");
|
|
|
|
AddonManager.getAddonByID("addon1@tests.mozilla.org", function(aAddon) {
|
|
ok(aAddon.seen, "Add-on should have been marked as seen");
|
|
|
|
EventUtils.synthesizeMouseAtCenter(doc.getElementById("continue-button"),
|
|
{}, aTab.linkedBrowser.contentWindow);
|
|
|
|
is(gBrowser.tabs.length, 1, "Page should have been closed");
|
|
|
|
ok(aAddon.userDisabled, "Add-on should not have been enabled");
|
|
|
|
ok(!aAddon.isActive, "Add-on should not be running");
|
|
|
|
aAddon.seen = false;
|
|
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");
|
|
|
|
AddonManager.getAddonByID("addon1@tests.mozilla.org", function(aAddon) {
|
|
ok(aAddon.seen, "Add-on should have been marked as seen");
|
|
|
|
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");
|
|
|
|
ok(!aAddon.userDisabled, "Add-on should now have been enabled");
|
|
|
|
ok(aAddon.isActive, "Add-on should now be running");
|
|
|
|
aAddon.userDisabled = true;
|
|
aAddon.seen = false;
|
|
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");
|
|
|
|
AddonManager.getAddonByID("addon2@tests.mozilla.org", function(aAddon) {
|
|
ok(aAddon.seen, "Add-on should have been marked as seen");
|
|
|
|
EventUtils.synthesizeMouseAtCenter(doc.getElementById("continue-button"),
|
|
{}, aTab.linkedBrowser.contentWindow);
|
|
|
|
is(gBrowser.tabs.length, 1, "Page should have been closed");
|
|
|
|
ok(aAddon.userDisabled, "Add-on should not have been enabled");
|
|
|
|
ok(!aAddon.isActive, "Add-on should not be running");
|
|
|
|
aAddon.seen = false;
|
|
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");
|
|
|
|
AddonManager.getAddonByID("addon2@tests.mozilla.org", function(aAddon) {
|
|
ok(aAddon.seen, "Add-on should have been marked as seen");
|
|
|
|
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");
|
|
|
|
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");
|
|
|
|
aAddon.seen = false;
|
|
run_next_test();
|
|
});
|
|
});
|
|
});
|
|
|
|
// Tests that opening the page in the background doesn't mark as seen
|
|
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");
|
|
|
|
AddonManager.getAddonByID("addon1@tests.mozilla.org", function(aAddon) {
|
|
ok(!aAddon.seen, "Add-on should not have been marked as seen.");
|
|
|
|
gBrowser.selectedTab = aTab;
|
|
|
|
waitForFocus(function() {
|
|
ok(aAddon.seen, "Add-on should have been marked as seen after focusing the tab.");
|
|
|
|
gBrowser.removeTab(aTab);
|
|
|
|
run_next_test();
|
|
}, aTab.linkedBrowser.contentWindow);
|
|
});
|
|
}, true);
|
|
});
|