diff options
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.js | 76 |
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 */ |