summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/sync/head.js
blob: 3888020b7465f4df13a6aadb557698902ed3a004 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const { UIState } = ChromeUtils.import("resource://services-sync/UIState.jsm");
const { sinon } = ChromeUtils.import("resource://testing-common/Sinon.jsm");

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,
  });
  sandbox.stub(BrowserUtils, "isShareableURL").returns(isSendableURI);
  sandbox.stub(fxAccounts.device, "refreshDeviceList").resolves(true);
  sandbox.stub(fxAccounts.commands.sendTab, "send").resolves({ failed: [] });
  return sandbox;
}