forked from mirrors/gecko-dev
Differential Revision: https://phabricator.services.mozilla.com/D43551 --HG-- extra : moz-landing-system : lando
83 lines
2.3 KiB
JavaScript
83 lines
2.3 KiB
JavaScript
/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
|
/* vim: set sts=2 sw=2 et tw=80: */
|
|
"use strict";
|
|
|
|
const { AddonTestUtils } = ChromeUtils.import(
|
|
"resource://testing-common/AddonTestUtils.jsm"
|
|
);
|
|
const { HomePage } = ChromeUtils.import("resource:///modules/HomePage.jsm");
|
|
|
|
XPCOMUtils.defineLazyServiceGetter(
|
|
this,
|
|
"aboutNewTabService",
|
|
"@mozilla.org/browser/aboutnewtab-service;1",
|
|
"nsIAboutNewTabService"
|
|
);
|
|
|
|
AddonTestUtils.init(this);
|
|
|
|
// Allow for unsigned addons.
|
|
AddonTestUtils.overrideCertDB();
|
|
|
|
AddonTestUtils.createAppInfo(
|
|
"xpcshell@tests.mozilla.org",
|
|
"XPCShell",
|
|
"42",
|
|
"42"
|
|
);
|
|
|
|
add_task(async function test_settings_validated() {
|
|
let defaultNewTab = aboutNewTabService.newTabURL;
|
|
equal(defaultNewTab, "about:newtab", "Newtab url is default.");
|
|
let defaultHomepageURL = HomePage.get();
|
|
equal(defaultHomepageURL, "about:home", "Home page url is default.");
|
|
|
|
let xpi = await AddonTestUtils.createTempWebExtensionFile({
|
|
manifest: {
|
|
version: "1.0",
|
|
applications: { gecko: { id: "test@mochi" } },
|
|
chrome_url_overrides: {
|
|
newtab: "/newtab",
|
|
},
|
|
chrome_settings_overrides: {
|
|
homepage: "https://example.com/",
|
|
},
|
|
},
|
|
});
|
|
let extension = ExtensionTestUtils.expectExtension("test@mochi");
|
|
let file = await AddonTestUtils.manuallyInstall(xpi);
|
|
await AddonTestUtils.promiseStartupManager();
|
|
await extension.awaitStartup();
|
|
|
|
equal(
|
|
HomePage.get(),
|
|
"https://example.com/",
|
|
"Home page url is extension controlled."
|
|
);
|
|
ok(
|
|
aboutNewTabService.newTabURL.endsWith("/newtab"),
|
|
"newTabURL is extension controlled."
|
|
);
|
|
|
|
await AddonTestUtils.promiseShutdownManager();
|
|
// After shutdown, delete the xpi file.
|
|
Services.obs.notifyObservers(xpi, "flush-cache-entry");
|
|
try {
|
|
file.remove(true);
|
|
} catch (e) {
|
|
ok(false, e);
|
|
}
|
|
await AddonTestUtils.cleanupTempXPIs();
|
|
|
|
// Restart everything, the UninstallObserver should handle updating state.
|
|
let prefChanged = TestUtils.waitForPrefChange("browser.startup.homepage");
|
|
await AddonTestUtils.promiseStartupManager();
|
|
await prefChanged;
|
|
|
|
equal(HomePage.get(), defaultHomepageURL, "Home page url is default.");
|
|
equal(
|
|
aboutNewTabService.newTabURL,
|
|
defaultNewTab,
|
|
"newTabURL is reset to default."
|
|
);
|
|
});
|