summaryrefslogtreecommitdiffstats
path: root/browser/modules/test/xpcshell/test_LaterRun.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/modules/test/xpcshell/test_LaterRun.js')
-rw-r--r--browser/modules/test/xpcshell/test_LaterRun.js138
1 files changed, 0 insertions, 138 deletions
diff --git a/browser/modules/test/xpcshell/test_LaterRun.js b/browser/modules/test/xpcshell/test_LaterRun.js
deleted file mode 100644
index 7b45c7cd5..000000000
--- a/browser/modules/test/xpcshell/test_LaterRun.js
+++ /dev/null
@@ -1,138 +0,0 @@
-"use strict";
-
-const kEnabledPref = "browser.laterrun.enabled";
-const kPagePrefRoot = "browser.laterrun.pages.";
-const kSessionCountPref = "browser.laterrun.bookkeeping.sessionCount";
-const kProfileCreationTime = "browser.laterrun.bookkeeping.profileCreationTime";
-
-Components.utils.import("resource://gre/modules/Services.jsm");
-Components.utils.import("resource:///modules/LaterRun.jsm");
-
-Services.prefs.setBoolPref(kEnabledPref, true);
-Components.utils.import("resource://testing-common/AppInfo.jsm");
-updateAppInfo();
-
-add_task(function* test_page_applies() {
- Services.prefs.setCharPref(kPagePrefRoot + "test_LaterRun_unittest.url", "https://www.mozilla.org/%VENDOR%/%NAME%/%ID%/%VERSION%/");
- Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumHoursSinceInstall", 10);
- Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumSessionCount", 3);
-
- let pages = LaterRun.readPages();
- // We have to filter the pages because it's possible Firefox ships with other URLs
- // that get included in this test.
- pages = pages.filter(page => page.pref == kPagePrefRoot + "test_LaterRun_unittest.");
- Assert.equal(pages.length, 1, "Got 1 page");
- let page = pages[0];
- Assert.equal(page.pref, kPagePrefRoot + "test_LaterRun_unittest.", "Should know its own pref");
- Assert.equal(page.minimumHoursSinceInstall, 10, "Needs to have 10 hours since install");
- Assert.equal(page.minimumSessionCount, 3, "Needs to have 3 sessions");
- Assert.equal(page.requireBoth, false, "Either requirement is enough");
- let expectedURL = "https://www.mozilla.org/" +
- Services.appinfo.vendor + "/" +
- Services.appinfo.name + "/" +
- Services.appinfo.ID + "/" +
- Services.appinfo.version + "/";
- Assert.equal(page.url, expectedURL, "URL is stored correctly");
-
- Assert.ok(page.applies({hoursSinceInstall: 1, sessionCount: 3}),
- "Applies when session count has been met.");
- Assert.ok(page.applies({hoursSinceInstall: 1, sessionCount: 4}),
- "Applies when session count has been exceeded.");
- Assert.ok(page.applies({hoursSinceInstall: 10, sessionCount: 2}),
- "Applies when total session time has been met.");
- Assert.ok(page.applies({hoursSinceInstall: 20, sessionCount: 2}),
- "Applies when total session time has been exceeded.");
- Assert.ok(page.applies({hoursSinceInstall: 10, sessionCount: 3}),
- "Applies when both time and session count have been met.");
- Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 1}),
- "Does not apply when neither time and session count have been met.");
-
- page.requireBoth = true;
-
- Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 3}),
- "Does not apply when only session count has been met.");
- Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 4}),
- "Does not apply when only session count has been exceeded.");
- Assert.ok(!page.applies({hoursSinceInstall: 10, sessionCount: 2}),
- "Does not apply when only total session time has been met.");
- Assert.ok(!page.applies({hoursSinceInstall: 20, sessionCount: 2}),
- "Does not apply when only total session time has been exceeded.");
- Assert.ok(page.applies({hoursSinceInstall: 10, sessionCount: 3}),
- "Applies when both time and session count have been met.");
- Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 1}),
- "Does not apply when neither time and session count have been met.");
-
- // Check that pages that have run never apply:
- Services.prefs.setBoolPref(kPagePrefRoot + "test_LaterRun_unittest.hasRun", true);
- page.requireBoth = false;
-
- Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 3}),
- "Does not apply when page has already run (sessionCount equal).");
- Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 4}),
- "Does not apply when page has already run (sessionCount exceeding).");
- Assert.ok(!page.applies({hoursSinceInstall: 10, sessionCount: 2}),
- "Does not apply when page has already run (hoursSinceInstall equal).");
- Assert.ok(!page.applies({hoursSinceInstall: 20, sessionCount: 2}),
- "Does not apply when page has already run (hoursSinceInstall exceeding).");
- Assert.ok(!page.applies({hoursSinceInstall: 10, sessionCount: 3}),
- "Does not apply when page has already run (both criteria equal).");
- Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 1}),
- "Does not apply when page has already run (both criteria insufficient anyway).");
-
- clearAllPagePrefs();
-});
-
-add_task(function* test_get_URL() {
- Services.prefs.setIntPref(kProfileCreationTime, Math.floor((Date.now() - 11 * 60 * 60 * 1000) / 1000));
- Services.prefs.setCharPref(kPagePrefRoot + "test_LaterRun_unittest.url", "https://www.mozilla.org/");
- Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumHoursSinceInstall", 10);
- Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumSessionCount", 3);
- let pages = LaterRun.readPages();
- // We have to filter the pages because it's possible Firefox ships with other URLs
- // that get included in this test.
- pages = pages.filter(page => page.pref == kPagePrefRoot + "test_LaterRun_unittest.");
- Assert.equal(pages.length, 1, "Should only be 1 matching page");
- let page = pages[0];
- let url;
- do {
- url = LaterRun.getURL();
- // We have to loop because it's possible Firefox ships with other URLs that get triggered by
- // this test.
- } while (url && url != "https://www.mozilla.org/");
- Assert.equal(url, "https://www.mozilla.org/", "URL should be as expected when prefs are set.");
- Assert.ok(Services.prefs.prefHasUserValue(kPagePrefRoot + "test_LaterRun_unittest.hasRun"), "Should have set pref");
- Assert.ok(Services.prefs.getBoolPref(kPagePrefRoot + "test_LaterRun_unittest.hasRun"), "Should have set pref to true");
- Assert.ok(page.hasRun, "Other page objects should know it has run, too.");
-
- clearAllPagePrefs();
-});
-
-add_task(function* test_insecure_urls() {
- Services.prefs.setCharPref(kPagePrefRoot + "test_LaterRun_unittest.url", "http://www.mozilla.org/");
- Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumHoursSinceInstall", 10);
- Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumSessionCount", 3);
- let pages = LaterRun.readPages();
- // We have to filter the pages because it's possible Firefox ships with other URLs
- // that get triggered in this test.
- pages = pages.filter(page => page.pref == kPagePrefRoot + "test_LaterRun_unittest.");
- Assert.equal(pages.length, 0, "URL with non-https scheme should get ignored");
- clearAllPagePrefs();
-});
-
-add_task(function* test_dynamic_pref_getter_setter() {
- delete LaterRun._sessionCount;
- Services.prefs.setIntPref(kSessionCountPref, 0);
- Assert.equal(LaterRun.sessionCount, 0, "Should start at 0");
-
- LaterRun.sessionCount++;
- Assert.equal(LaterRun.sessionCount, 1, "Should increment.");
- Assert.equal(Services.prefs.getIntPref(kSessionCountPref), 1, "Should update pref");
-});
-
-function clearAllPagePrefs() {
- let allChangedPrefs = Services.prefs.getChildList(kPagePrefRoot);
- for (let pref of allChangedPrefs) {
- Services.prefs.clearUserPref(pref);
- }
-}
-