forked from mirrors/gecko-dev
Migrated `testing/modules/Sinon.sys.mjs` to an ES module. `testing` should now be 100% ESM 🎉 Differential Revision: https://phabricator.services.mozilla.com/D173643
33 lines
1,013 B
JavaScript
33 lines
1,013 B
JavaScript
const { UIState } = ChromeUtils.importESModule(
|
|
"resource://services-sync/UIState.sys.mjs"
|
|
);
|
|
const { sinon } = ChromeUtils.importESModule(
|
|
"resource://testing-common/Sinon.sys.mjs"
|
|
);
|
|
|
|
function promiseSyncReady() {
|
|
let service = Cc["@mozilla.org/weave/service;1"].getService(Ci.nsISupports)
|
|
.wrappedJSObject;
|
|
return service.whenLoaded();
|
|
}
|
|
|
|
function setupSendTabMocks({
|
|
fxaDevices = null,
|
|
state = UIState.STATUS_SIGNED_IN,
|
|
isSendableURI = true,
|
|
}) {
|
|
const sandbox = sinon.createSandbox();
|
|
sandbox.stub(fxAccounts.device, "recentDeviceList").get(() => fxaDevices);
|
|
sandbox.stub(UIState, "get").returns({
|
|
status: state,
|
|
syncEnabled: true,
|
|
});
|
|
if (isSendableURI) {
|
|
sandbox.stub(BrowserUtils, "getShareableURL").returnsArg(0);
|
|
} else {
|
|
sandbox.stub(BrowserUtils, "getShareableURL").returns(null);
|
|
}
|
|
sandbox.stub(fxAccounts.device, "refreshDeviceList").resolves(true);
|
|
sandbox.stub(fxAccounts.commands.sendTab, "send").resolves({ failed: [] });
|
|
return sandbox;
|
|
}
|