diff options
author | Matt A. Tobin <email@mattatobin.com> | 2018-02-03 06:00:38 -0500 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2018-02-03 06:00:38 -0500 |
commit | 8148615da179fdd60f19018e13b4e94b95609cc6 (patch) | |
tree | 771fccdd99fa3adf35fdd2c81d8197b415a89b91 /browser/components/newtab/tests/xpcshell/test_AboutNewTabService.js | |
parent | 494802c1be7888025b95260d23db187467d2b9dd (diff) | |
download | UXP-8148615da179fdd60f19018e13b4e94b95609cc6.tar UXP-8148615da179fdd60f19018e13b4e94b95609cc6.tar.gz UXP-8148615da179fdd60f19018e13b4e94b95609cc6.tar.lz UXP-8148615da179fdd60f19018e13b4e94b95609cc6.tar.xz UXP-8148615da179fdd60f19018e13b4e94b95609cc6.zip |
Remove browser tests - Part 1: The Tests (except for experiments)
Diffstat (limited to 'browser/components/newtab/tests/xpcshell/test_AboutNewTabService.js')
-rw-r--r-- | browser/components/newtab/tests/xpcshell/test_AboutNewTabService.js | 236 |
1 files changed, 0 insertions, 236 deletions
diff --git a/browser/components/newtab/tests/xpcshell/test_AboutNewTabService.js b/browser/components/newtab/tests/xpcshell/test_AboutNewTabService.js deleted file mode 100644 index 21f68ab70..000000000 --- a/browser/components/newtab/tests/xpcshell/test_AboutNewTabService.js +++ /dev/null @@ -1,236 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ - */ - -/* globals Services, XPCOMUtils, NewTabPrefsProvider, Preferences, aboutNewTabService, do_register_cleanup */ - -"use strict"; - -const {utils: Cu} = Components; -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Preferences.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, "NewTabPrefsProvider", - "resource:///modules/NewTabPrefsProvider.jsm"); - -XPCOMUtils.defineLazyServiceGetter(this, "aboutNewTabService", - "@mozilla.org/browser/aboutnewtab-service;1", - "nsIAboutNewTabService"); - -XPCOMUtils.defineLazyModuleGetter(this, "Locale", - "resource://gre/modules/Locale.jsm"); - -const DEFAULT_HREF = aboutNewTabService.generateRemoteURL(); -const DEFAULT_CHROME_URL = "chrome://browser/content/newtab/newTab.xhtml"; -const DOWNLOADS_URL = "chrome://browser/content/downloads/contentAreaDownloadsView.xul"; -const DEFAULT_VERSION = aboutNewTabService.remoteVersion; - -function cleanup() { - Services.prefs.setBoolPref("browser.newtabpage.remote", false); - Services.prefs.setCharPref("browser.newtabpage.remote.version", DEFAULT_VERSION); - aboutNewTabService.resetNewTabURL(); - NewTabPrefsProvider.prefs.uninit(); -} - -do_register_cleanup(cleanup); - -/** - * Test the overriding of the default URL - */ -add_task(function* test_override_remote_disabled() { - NewTabPrefsProvider.prefs.init(); - let notificationPromise; - Services.prefs.setBoolPref("browser.newtabpage.remote", false); - - // tests default is the local newtab resource - Assert.equal(aboutNewTabService.defaultURL, DEFAULT_CHROME_URL, - `Default newtab URL should be ${DEFAULT_CHROME_URL}`); - - // override with some remote URL - let url = "http://example.com/"; - notificationPromise = nextChangeNotificationPromise(url); - aboutNewTabService.newTabURL = url; - yield notificationPromise; - Assert.ok(aboutNewTabService.overridden, "Newtab URL should be overridden"); - Assert.ok(!aboutNewTabService.remoteEnabled, "Newtab remote should not be enabled"); - Assert.equal(aboutNewTabService.newTabURL, url, "Newtab URL should be the custom URL"); - - // test reset with remote disabled - notificationPromise = nextChangeNotificationPromise("about:newtab"); - aboutNewTabService.resetNewTabURL(); - yield notificationPromise; - Assert.ok(!aboutNewTabService.overridden, "Newtab URL should not be overridden"); - Assert.equal(aboutNewTabService.newTabURL, "about:newtab", "Newtab URL should be the default"); - - // test override to a chrome URL - notificationPromise = nextChangeNotificationPromise(DOWNLOADS_URL); - aboutNewTabService.newTabURL = DOWNLOADS_URL; - yield notificationPromise; - Assert.ok(aboutNewTabService.overridden, "Newtab URL should be overridden"); - Assert.equal(aboutNewTabService.newTabURL, DOWNLOADS_URL, "Newtab URL should be the custom URL"); - - cleanup(); -}); - -add_task(function* test_override_remote_enabled() { - NewTabPrefsProvider.prefs.init(); - let notificationPromise; - // change newtab page to remote - notificationPromise = nextChangeNotificationPromise("about:newtab"); - Services.prefs.setBoolPref("browser.newtabpage.remote", true); - yield notificationPromise; - let remoteHref = aboutNewTabService.generateRemoteURL(); - Assert.equal(aboutNewTabService.defaultURL, remoteHref, "Newtab URL should be the default remote URL"); - Assert.ok(!aboutNewTabService.overridden, "Newtab URL should not be overridden"); - Assert.ok(aboutNewTabService.remoteEnabled, "Newtab remote should be enabled"); - - // change to local newtab page while remote is enabled - notificationPromise = nextChangeNotificationPromise(DEFAULT_CHROME_URL); - aboutNewTabService.newTabURL = DEFAULT_CHROME_URL; - yield notificationPromise; - Assert.equal(aboutNewTabService.newTabURL, DEFAULT_CHROME_URL, - "Newtab URL set to chrome url"); - Assert.equal(aboutNewTabService.defaultURL, DEFAULT_CHROME_URL, - "Newtab URL defaultURL set to the default chrome URL"); - Assert.ok(aboutNewTabService.overridden, "Newtab URL should be overridden"); - Assert.ok(!aboutNewTabService.remoteEnabled, "Newtab remote should not be enabled"); - - cleanup(); -}); - -/** - * Tests reponse to updates to prefs - */ -add_task(function* test_updates() { - /* - * Simulates a "cold-boot" situation, with some pref already set before testing a series - * of changes. - */ - Preferences.set("browser.newtabpage.remote", true); - aboutNewTabService.resetNewTabURL(); // need to set manually because pref notifs are off - let notificationPromise; - let productionModeBaseUrl = "https://content.cdn.mozilla.net"; - let testModeBaseUrl = "https://example.com"; - let expectedPath = `/newtab` + - `/v${aboutNewTabService.remoteVersion}` + - `/${aboutNewTabService.remoteReleaseName}` + - "/en-GB" + - "/index.html"; - let expectedHref = productionModeBaseUrl + expectedPath; - Preferences.set("intl.locale.matchOS", true); - Preferences.set("general.useragent.locale", "en-GB"); - Preferences.set("browser.newtabpage.remote.mode", "production"); - NewTabPrefsProvider.prefs.init(); - - // test update checks for prefs - notificationPromise = nextChangeNotificationPromise( - expectedHref, "Remote href should be updated"); - Preferences.set("intl.locale.matchOS", false); - yield notificationPromise; - - notificationPromise = nextChangeNotificationPromise( - DEFAULT_HREF, "Remote href changes back to default"); - Preferences.set("general.useragent.locale", "en-US"); - yield notificationPromise; - - // test update fires when mode is changed - expectedPath = expectedPath.replace("/en-GB/", "/en-US/"); - notificationPromise = nextChangeNotificationPromise( - testModeBaseUrl + expectedPath, "Remote href changes back to origin of test mode"); - Preferences.set("browser.newtabpage.remote.mode", "test"); - yield notificationPromise; - - // test invalid mode ends up pointing to production url - notificationPromise = nextChangeNotificationPromise( - DEFAULT_HREF, "Remote href changes back to production default"); - Preferences.set("browser.newtabpage.remote.mode", "invalid"); - yield notificationPromise; - - // test update fires on override and reset - let testURL = "https://example.com/"; - notificationPromise = nextChangeNotificationPromise( - testURL, "a notification occurs on override"); - aboutNewTabService.newTabURL = testURL; - yield notificationPromise; - - // from overridden to default - notificationPromise = nextChangeNotificationPromise( - "about:newtab", "a notification occurs on reset"); - aboutNewTabService.resetNewTabURL(); - Assert.ok(aboutNewTabService.remoteEnabled, "Newtab remote should be enabled"); - Assert.equal(aboutNewTabService.defaultURL, DEFAULT_HREF, "Default URL should be the remote page"); - yield notificationPromise; - - // override to default URL from default URL - notificationPromise = nextChangeNotificationPromise( - testURL, "a notification only occurs for a change in overridden urls"); - aboutNewTabService.newTabURL = aboutNewTabService.generateRemoteURL(); - Assert.ok(aboutNewTabService.remoteEnabled, "Newtab remote should be enabled"); - aboutNewTabService.newTabURL = testURL; - yield notificationPromise; - Assert.ok(!aboutNewTabService.remoteEnabled, "Newtab remote should not be enabled"); - - // reset twice, only one notification for default URL - notificationPromise = nextChangeNotificationPromise( - "about:newtab", "reset occurs"); - aboutNewTabService.resetNewTabURL(); - yield notificationPromise; - - cleanup(); -}); - -/** - * Verifies that releaseFromUpdateChannel - * Returns the correct release names - */ -add_task(function* test_release_names() { - let valid_channels = ["esr", "release", "beta", "aurora", "nightly"]; - let invalid_channels = new Set(["default", "invalid"]); - - for (let channel of valid_channels) { - Assert.equal(channel, aboutNewTabService.releaseFromUpdateChannel(channel), - "release == channel name when valid"); - } - - for (let channel of invalid_channels) { - Assert.equal("nightly", aboutNewTabService.releaseFromUpdateChannel(channel), - "release == nightly when invalid"); - } -}); - -/** - * Verifies that remote version updates changes the remote newtab url - */ -add_task(function* test_version_update() { - NewTabPrefsProvider.prefs.init(); - - Services.prefs.setBoolPref("browser.newtabpage.remote", true); - Assert.ok(aboutNewTabService.remoteEnabled, "remote mode enabled"); - - let productionModeBaseUrl = "https://content.cdn.mozilla.net"; - let version_incr = String(parseInt(DEFAULT_VERSION) + 1); - let expectedPath = `/newtab` + - `/v${version_incr}` + - `/${aboutNewTabService.remoteReleaseName}` + - `/${Locale.getLocale()}` + - `/index.html`; - let expectedHref = productionModeBaseUrl + expectedPath; - - let notificationPromise; - notificationPromise = nextChangeNotificationPromise(expectedHref); - Preferences.set("browser.newtabpage.remote.version", version_incr); - yield notificationPromise; - - cleanup(); -}); - -function nextChangeNotificationPromise(aNewURL, testMessage) { - return new Promise(resolve => { - Services.obs.addObserver(function observer(aSubject, aTopic, aData) { // jshint unused:false - Services.obs.removeObserver(observer, aTopic); - Assert.equal(aData, aNewURL, testMessage); - resolve(); - }, "newtab-url-changed", false); - }); -} |