function whenMainPaneLoadedFinished() { return new Promise(function (resolve, reject) { const topic = "main-pane-loaded"; Services.obs.addObserver(function observer(aSubject) { Services.obs.removeObserver(observer, topic); resolve(); }, topic); }); } // Temporary test for an experimental new localization API. // See bug 1402069 for details. add_task(async function () { // The string is used only when `browserTabsRemoteAutostart` is true if (!Services.appinfo.browserTabsRemoteAutostart) { ok(true, "fake test to avoid harness complaining"); return; } await Promise.all([ openPreferencesViaOpenPreferencesAPI("general", { leaveOpen: true }), whenMainPaneLoadedFinished(), ]); let doc = gBrowser.contentDocument; await doc.l10n.ready; let [msg] = await doc.l10n.formatMessages([{ id: "category-general" }]); let elem = doc.querySelector(`#category-general`); Assert.deepEqual(msg, { value: null, attributes: [ { name: "tooltiptext", value: elem.getAttribute("tooltiptext") }, ], }); BrowserTestUtils.removeTab(gBrowser.selectedTab); });