
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);
});
