summaryrefslogtreecommitdiffstats
path: root/devtools/client/aboutdebugging/test/browser/mocks/helper-runtime-client-factory-mock.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser/mocks/helper-runtime-client-factory-mock.js')
-rw-r--r--devtools/client/aboutdebugging/test/browser/mocks/helper-runtime-client-factory-mock.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser/mocks/helper-runtime-client-factory-mock.js b/devtools/client/aboutdebugging/test/browser/mocks/helper-runtime-client-factory-mock.js
new file mode 100644
index 0000000000..b74c229fcf
--- /dev/null
+++ b/devtools/client/aboutdebugging/test/browser/mocks/helper-runtime-client-factory-mock.js
@@ -0,0 +1,76 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/**
+ * Setup the loader to return the provided mock object instead of the regular
+ * runtime-client-factory module.
+ *
+ * @param {Object}
+ * mock should implement the following methods:
+ * - createClientForRuntime(runtime)
+ */
+function enableRuntimeClientFactoryMock(mock) {
+ const {
+ setMockedModule,
+ } = require("resource://devtools/shared/loader/browser-loader-mocks.js");
+ setMockedModule(
+ mock,
+ "devtools/client/aboutdebugging/src/modules/runtime-client-factory"
+ );
+
+ // When using a mocked client, we should not attempt to check default
+ // preferences.
+ mockRuntimeDefaultPreferences();
+}
+/* exported enableRuntimeClientFactoryMock */
+
+const mockRuntimeDefaultPreferences = function () {
+ const {
+ removeMockedModule,
+ setMockedModule,
+ } = require("resource://devtools/shared/loader/browser-loader-mocks.js");
+
+ const mock = {
+ setDefaultPreferencesIfNeeded: () => {},
+ DEFAULT_PREFERENCES: [],
+ };
+ setMockedModule(
+ mock,
+ "devtools/client/aboutdebugging/src/modules/runtime-default-preferences"
+ );
+
+ registerCleanupFunction(() => {
+ removeMockedModule(
+ "devtools/client/aboutdebugging/src/modules/runtime-default-preferences"
+ );
+ });
+};
+
+/**
+ * Update the loader to clear the mock entry for the runtime-client-factory module.
+ */
+function disableRuntimeClientFactoryMock() {
+ const {
+ removeMockedModule,
+ } = require("resource://devtools/shared/loader/browser-loader-mocks.js");
+ removeMockedModule(
+ "devtools/client/aboutdebugging/src/modules/runtime-client-factory"
+ );
+}
+/* exported disableRuntimeClientFactoryMock */
+
+/**
+ * Creates a simple mock version for runtime-client-factory, implementing all the expected
+ * methods with empty placeholders.
+ */
+function createRuntimeClientFactoryMock() {
+ const RuntimeClientFactoryMock = {};
+ RuntimeClientFactoryMock.createClientForRuntime = function (runtime) {
+ console.log("MOCKED METHOD createClientForRuntime");
+ };
+
+ return RuntimeClientFactoryMock;
+}
+/* exported createRuntimeClientFactoryMock */