Bug 1451307 - Part 2 - Move trackingUI tests out of b/b/c/test/general into their own subdirectory. r=Gijs
MozReview-Commit-ID: 5e2Hwt9jcX5
--- a/browser/base/content/test/general/browser.ini
+++ b/browser/base/content/test/general/browser.ini
@@ -438,42 +438,16 @@ support-files =
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_tabs_isActive.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_tabs_owner.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_testOpenNewRemoteTabsFromNonRemoteBrowsers.js]
run-if = e10s
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
-[browser_trackingUI_3.js]
-tags = trackingprotection
-# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
-[browser_trackingUI_4.js]
-tags = trackingprotection
-support-files =
- trackingPage.html
- benignPage.html
-# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
-[browser_trackingUI_5.js]
-tags = trackingprotection
-support-files =
- trackingPage.html
-# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
-[browser_trackingUI_6.js]
-tags = trackingprotection
-support-files =
- file_trackingUI_6.html
- file_trackingUI_6.js
- file_trackingUI_6.js^headers^
-# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
-[browser_trackingUI_telemetry.js]
-tags = trackingprotection
-support-files =
- trackingPage.html
-# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_typeAheadFind.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_unknownContentType_title.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_unloaddialogs.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_utilityOverlay.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
rename from browser/base/content/test/general/benignPage.html
rename to browser/base/content/test/trackingUI/benignPage.html
--- a/browser/base/content/test/trackingUI/browser.ini
+++ b/browser/base/content/test/trackingUI/browser.ini
@@ -1,12 +1,21 @@
[DEFAULT]
tags = trackingprotection
support-files =
head.js
- ../general/benignPage.html
- ../general/trackingPage.html
+ benignPage.html
+ trackingPage.html
+[browser_trackingUI_3.js]
+[browser_trackingUI_4.js]
+[browser_trackingUI_5.js]
+[browser_trackingUI_6.js]
+support-files =
+ file_trackingUI_6.html
+ file_trackingUI_6.js
+ file_trackingUI_6.js^headers^
[browser_trackingUI_appMenu.js]
[browser_trackingUI_appMenu_toggle.js]
[browser_trackingUI_open_preferences.js]
[browser_trackingUI_reload_hint.js]
[browser_trackingUI_state.js]
+[browser_trackingUI_telemetry.js]
rename from browser/base/content/test/general/browser_trackingUI_3.js
rename to browser/base/content/test/trackingUI/browser_trackingUI_3.js
--- a/browser/base/content/test/general/browser_trackingUI_3.js
+++ b/browser/base/content/test/trackingUI/browser_trackingUI_3.js
@@ -1,19 +1,16 @@
/*
* Test that the Tracking Protection is correctly enabled / disabled
* in both normal and private windows given all possible states of the prefs:
* privacy.trackingprotection.enabled
* privacy.trackingprotection.pbmode.enabled
* See also Bug 1178985.
*/
-const PREF = "privacy.trackingprotection.enabled";
-const PB_PREF = "privacy.trackingprotection.pbmode.enabled";
-
registerCleanupFunction(function() {
Services.prefs.clearUserPref(PREF);
Services.prefs.clearUserPref(PB_PREF);
});
add_task(async function testNormalBrowsing() {
let TrackingProtection = gBrowser.ownerGlobal.TrackingProtection;
ok(TrackingProtection, "TP is attached to the browser window");
rename from browser/base/content/test/general/browser_trackingUI_4.js
rename to browser/base/content/test/trackingUI/browser_trackingUI_4.js
--- a/browser/base/content/test/general/browser_trackingUI_4.js
+++ b/browser/base/content/test/trackingUI/browser_trackingUI_4.js
@@ -1,23 +1,17 @@
/*
* Test that the Tracking Protection icon is properly animated in the identity
* block when loading tabs and switching between tabs.
* See also Bug 1175858.
*/
-const PREF = "privacy.trackingprotection.enabled";
-const PB_PREF = "privacy.trackingprotection.pbmode.enabled";
-const BENIGN_PAGE = "http://tracking.example.org/browser/browser/base/content/test/general/benignPage.html";
-const TRACKING_PAGE = "http://tracking.example.org/browser/browser/base/content/test/general/trackingPage.html";
var TrackingProtection = null;
var tabbrowser = null;
-var {UrlClassifierTestUtils} = ChromeUtils.import("resource://testing-common/UrlClassifierTestUtils.jsm", {});
-
registerCleanupFunction(function() {
TrackingProtection = tabbrowser = null;
UrlClassifierTestUtils.cleanupTestTrackers();
Services.prefs.clearUserPref(PREF);
Services.prefs.clearUserPref(PB_PREF);
while (gBrowser.tabs.length > 1) {
gBrowser.removeCurrentTab();
}
rename from browser/base/content/test/general/browser_trackingUI_5.js
rename to browser/base/content/test/trackingUI/browser_trackingUI_5.js
--- a/browser/base/content/test/general/browser_trackingUI_5.js
+++ b/browser/base/content/test/trackingUI/browser_trackingUI_5.js
@@ -1,19 +1,16 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
// Test that sites added to the Tracking Protection whitelist in private
// browsing mode don't persist once the private browsing window closes.
-const PB_PREF = "privacy.trackingprotection.pbmode.enabled";
-const TRACKING_PAGE = "http://tracking.example.org/browser/browser/base/content/test/general/trackingPage.html";
var TrackingProtection = null;
var browser = null;
-var {UrlClassifierTestUtils} = ChromeUtils.import("resource://testing-common/UrlClassifierTestUtils.jsm", {});
registerCleanupFunction(function() {
TrackingProtection = browser = null;
UrlClassifierTestUtils.cleanupTestTrackers();
});
function hidden(sel) {
let win = browser.ownerGlobal;
@@ -74,17 +71,17 @@ function testTrackingPageUnblocked() {
add_task(async function testExceptionAddition() {
await UrlClassifierTestUtils.addTestTrackers();
let privateWin = await promiseOpenAndLoadWindow({private: true}, true);
browser = privateWin.gBrowser;
let tab = await BrowserTestUtils.openNewForegroundTab({ gBrowser: browser, waitForLoad: true, waitForStateStop: true });
TrackingProtection = browser.ownerGlobal.TrackingProtection;
- await pushPrefs([PB_PREF, true]);
+ await SpecialPowers.pushPrefEnv({"set": [[PB_PREF, true]]});
ok(TrackingProtection.enabled, "TP is enabled after setting the pref");
info("Load a test page containing tracking elements");
await promiseTabLoadEvent(tab, TRACKING_PAGE);
testTrackingPage(tab.ownerGlobal);
rename from browser/base/content/test/general/browser_trackingUI_6.js
rename to browser/base/content/test/trackingUI/browser_trackingUI_6.js
--- a/browser/base/content/test/general/browser_trackingUI_6.js
+++ b/browser/base/content/test/trackingUI/browser_trackingUI_6.js
@@ -1,9 +1,9 @@
-const URL = "http://mochi.test:8888/browser/browser/base/content/test/general/file_trackingUI_6.html";
+const URL = getRootDirectory(gTestPath).replace("chrome://mochitests/content", "http://mochi.test:8888") + "file_trackingUI_6.html";
function waitForSecurityChange(numChanges = 1) {
return new Promise(resolve => {
let n = 0;
let listener = {
onSecurityChange() {
n = n + 1;
info("Received onSecurityChange event " + n + " of " + numChanges);
rename from browser/base/content/test/general/browser_trackingUI_telemetry.js
rename to browser/base/content/test/trackingUI/browser_trackingUI_telemetry.js
--- a/browser/base/content/test/general/browser_trackingUI_telemetry.js
+++ b/browser/base/content/test/trackingUI/browser_trackingUI_telemetry.js
@@ -1,17 +1,12 @@
/*
* Test telemetry for Tracking Protection
*/
-const PREF = "privacy.trackingprotection.enabled";
-const BENIGN_PAGE = "http://tracking.example.org/browser/browser/base/content/test/general/benignPage.html";
-const TRACKING_PAGE = "http://tracking.example.org/browser/browser/base/content/test/general/trackingPage.html";
-const {UrlClassifierTestUtils} = ChromeUtils.import("resource://testing-common/UrlClassifierTestUtils.jsm", {});
-
/**
* Enable local telemetry recording for the duration of the tests.
*/
var oldCanRecord = Services.telemetry.canRecordExtended;
Services.telemetry.canRecordExtended = true;
Services.prefs.setBoolPref(PREF, false);
Services.telemetry.getHistogramById("TRACKING_PROTECTION_ENABLED").clear();
registerCleanupFunction(function() {
rename from browser/base/content/test/general/file_trackingUI_6.html
rename to browser/base/content/test/trackingUI/file_trackingUI_6.html
--- a/browser/base/content/test/general/file_trackingUI_6.html
+++ b/browser/base/content/test/trackingUI/file_trackingUI_6.html
@@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<title>Testing the shield from fetch and XHR</title>
</head>
<body>
<p>Hello there!</p>
<script type="application/javascript">
function test_fetch() {
- let url = "http://trackertest.org/browser/browser/base/content/test/general/file_trackingUI_6.js";
+ let url = "http://trackertest.org/browser/browser/base/content/test/trackingUI/file_trackingUI_6.js";
return fetch(url);
}
</script>
</body>
</html>
rename from browser/base/content/test/general/file_trackingUI_6.js
rename to browser/base/content/test/trackingUI/file_trackingUI_6.js
rename from browser/base/content/test/general/file_trackingUI_6.js^headers^
rename to browser/base/content/test/trackingUI/file_trackingUI_6.js^headers^
--- a/browser/base/content/test/trackingUI/head.js
+++ b/browser/base/content/test/trackingUI/head.js
@@ -1,8 +1,53 @@
+var {UrlClassifierTestUtils} = ChromeUtils.import("resource://testing-common/UrlClassifierTestUtils.jsm", {});
+
+const PREF = "privacy.trackingprotection.enabled";
+const PB_PREF = "privacy.trackingprotection.pbmode.enabled";
+const ROOT = getRootDirectory(gTestPath).replace("chrome://mochitests/content", "http://tracking.example.org");
+const BENIGN_PAGE = ROOT + "benignPage.html";
+const TRACKING_PAGE = ROOT + "trackingPage.html";
+
+function promiseWindowWillBeClosed(win) {
+ return new Promise((resolve, reject) => {
+ Services.obs.addObserver(function observe(subject, topic) {
+ if (subject == win) {
+ Services.obs.removeObserver(observe, topic);
+ executeSoon(resolve);
+ }
+ }, "domwindowclosed");
+ });
+}
+
+function promiseWindowClosed(win) {
+ let promise = promiseWindowWillBeClosed(win);
+ win.close();
+ return promise;
+}
+
+function promiseOpenAndLoadWindow(aOptions, aWaitForDelayedStartup = false) {
+ return new Promise(resolve => {
+ let win = OpenBrowserWindow(aOptions);
+ if (aWaitForDelayedStartup) {
+ Services.obs.addObserver(function onDS(aSubject, aTopic, aData) {
+ if (aSubject != win) {
+ return;
+ }
+ Services.obs.removeObserver(onDS, "browser-delayed-startup-finished");
+ resolve(win);
+ }, "browser-delayed-startup-finished");
+
+ } else {
+ win.addEventListener("load", function() {
+ resolve(win);
+ }, {once: true});
+ }
+ });
+}
+
/**
* Waits for a load (or custom) event to finish in a given tab. If provided
* load an uri into the tab.
*
* @param tab
* The tab to load into.
* @param [optional] url
* The url to load, or the current url.
rename from browser/base/content/test/general/trackingPage.html
rename to browser/base/content/test/trackingUI/trackingPage.html
--- a/browser/components/uitour/test/browser.ini
+++ b/browser/components/uitour/test/browser.ini
@@ -13,18 +13,18 @@ skip-if = debug || asan # updateUI leaks
[browser_no_tabs.js]
[browser_openPreferences.js]
[browser_openSearchPanel.js]
skip-if = true # Bug 1113038 - Intermittent "Popup was opened"
[browser_trackingProtection.js]
skip-if = os == "linux" # Intermittent NS_ERROR_NOT_AVAILABLE [nsIUrlClassifierDBService.beginUpdate]
tag = trackingprotection
support-files =
- !/browser/base/content/test/general/benignPage.html
- !/browser/base/content/test/general/trackingPage.html
+ !/browser/base/content/test/trackingUI/benignPage.html
+ !/browser/base/content/test/trackingUI/trackingPage.html
[browser_trackingProtection_tour.js]
tag = trackingprotection
[browser_showMenu.js]
tag = trackingprotection
[browser_UITour.js]
skip-if = os == "linux" || verify # Intermittent failures, bug 951965
[browser_UITour2.js]
[browser_UITour3.js]
--- a/browser/components/uitour/test/browser_trackingProtection.js
+++ b/browser/components/uitour/test/browser_trackingProtection.js
@@ -1,14 +1,14 @@
"use strict";
const PREF_INTRO_COUNT = "privacy.trackingprotection.introCount";
const PREF_TP_ENABLED = "privacy.trackingprotection.enabled";
-const BENIGN_PAGE = "http://tracking.example.org/browser/browser/base/content/test/general/benignPage.html";
-const TRACKING_PAGE = "http://tracking.example.org/browser/browser/base/content/test/general/trackingPage.html";
+const BENIGN_PAGE = "http://tracking.example.org/browser/browser/base/content/test/trackingUI/benignPage.html";
+const TRACKING_PAGE = "http://tracking.example.org/browser/browser/base/content/test/trackingUI/trackingPage.html";
const TOOLTIP_PANEL = document.getElementById("UITourTooltip");
const TOOLTIP_ANCHOR = document.getElementById("tracking-protection-icon");
var {UrlClassifierTestUtils} = ChromeUtils.import("resource://testing-common/UrlClassifierTestUtils.jsm", {});
registerCleanupFunction(function() {
UrlClassifierTestUtils.cleanupTestTrackers();
Services.prefs.clearUserPref(PREF_TP_ENABLED);