Files
tubestation/browser/components/uitour/test/browser_fxa.js
Tooru Fujisawa d1bd5e4401 Bug 1771463 - Do not export lazy getter "fxAccounts" from services/fxaccounts/FxAccounts.jsm. r=markh,preferences-reviewers,Mardak
Instead of exporting lazy getter, export a function that returns the FxAccount
singleton, lazily creating on the first call, and define the lazy getter on the
consumer side that calls the function.

Differential Revision: https://phabricator.services.mozilla.com/D147634
2022-05-31 14:09:10 +00:00

63 lines
1.6 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const { UIState } = ChromeUtils.import("resource://services-sync/UIState.jsm");
const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);
XPCOMUtils.defineLazyGetter(this, "fxAccounts", () => {
return ChromeUtils.import(
"resource://gre/modules/FxAccounts.jsm"
).getFxAccountsSingleton();
});
var gTestTab;
var gContentAPI;
function test() {
UITourTest();
}
const oldState = UIState.get();
registerCleanupFunction(async function() {
await signOut();
gSync.updateAllUI(oldState);
});
var tests = [
taskify(async function test_highlight_accountStatus_loggedOut() {
await showMenuPromise("appMenu");
await showHighlightPromise("accountStatus");
let highlight = document.getElementById("UITourHighlightContainer");
is(
highlight.getAttribute("targetName"),
"accountStatus",
"Correct highlight target"
);
}),
taskify(async function test_highlight_accountStatus_loggedIn() {
gSync.updateAllUI({
status: UIState.STATUS_SIGNED_IN,
lastSync: new Date(),
email: "foo@example.com",
});
await showMenuPromise("appMenu");
await showHighlightPromise("accountStatus");
let highlight = document.getElementById("UITourHighlightContainer");
is(
highlight.getAttribute("targetName"),
"accountStatus",
"Correct highlight target"
);
}),
];
function signOut() {
// we always want a "localOnly" signout here...
return fxAccounts.signOut(true);
}