summaryrefslogtreecommitdiffstats
path: root/browser/components/protections/test/browser/head.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/protections/test/browser/head.js')
-rw-r--r--browser/components/protections/test/browser/head.js96
1 files changed, 96 insertions, 0 deletions
diff --git a/browser/components/protections/test/browser/head.js b/browser/components/protections/test/browser/head.js
new file mode 100644
index 0000000000..9815869ee5
--- /dev/null
+++ b/browser/components/protections/test/browser/head.js
@@ -0,0 +1,96 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* eslint-disable no-unused-vars */
+
+"use strict";
+
+const nsLoginInfo = new Components.Constructor(
+ "@mozilla.org/login-manager/loginInfo;1",
+ Ci.nsILoginInfo,
+ "init"
+);
+
+ChromeUtils.defineESModuleGetters(this, {
+ Region: "resource://gre/modules/Region.sys.mjs",
+});
+
+const { SearchTestUtils } = ChromeUtils.importESModule(
+ "resource://testing-common/SearchTestUtils.sys.mjs"
+);
+
+const TEST_LOGIN1 = new nsLoginInfo(
+ "https://example.com/",
+ "https://example.com/",
+ null,
+ "user1",
+ "pass1",
+ "username",
+ "password"
+);
+
+const TEST_LOGIN2 = new nsLoginInfo(
+ "https://2.example.com/",
+ "https://2.example.com/",
+ null,
+ "user2",
+ "pass2",
+ "username",
+ "password"
+);
+
+// Used to replace AboutProtectionsHandler.getLoginData in front-end tests.
+const mockGetLoginDataWithSyncedDevices = (
+ mobileDeviceConnected = false,
+ potentiallyBreachedLogins = 0
+) => {
+ return {
+ getLoginData: () => {
+ return {
+ numLogins: Services.logins.countLogins("", "", ""),
+ potentiallyBreachedLogins,
+ mobileDeviceConnected,
+ };
+ },
+ };
+};
+
+// Used to replace AboutProtectionsHandler.getMonitorData in front-end tests.
+const mockGetMonitorData = data => {
+ return {
+ getMonitorData: () => {
+ if (data.error) {
+ return data;
+ }
+
+ return {
+ monitoredEmails: 1,
+ numBreaches: data.numBreaches,
+ passwords: 8,
+ numBreachesResolved: data.numBreachesResolved,
+ passwordsResolved: 1,
+ error: false,
+ };
+ },
+ };
+};
+
+registerCleanupFunction(function head_cleanup() {
+ Services.logins.removeAllUserFacingLogins();
+});
+
+// Used to replace AboutProtectionsParent.VPNSubStatus
+const getVPNOverrides = (hasSubscription = false) => {
+ return {
+ vpnOverrides: () => {
+ return hasSubscription;
+ },
+ };
+};
+
+const promiseSetHomeRegion = async region => {
+ let promise = SearchTestUtils.promiseSearchNotification("engines-reloaded");
+ Region._setHomeRegion(region);
+ await promise;
+};