"use strict";

var gTestTab;
var gContentAPI;

add_task(setup_UITourTest);

add_UITour_task(async function test_closeTab() {
  // Setting gTestTab to null indicates that the tab has already been closed,
  // and if this does not happen the test run will fail.
  let closePromise = BrowserTestUtils.waitForEvent(
    gBrowser.tabContainer,
    "TabClose"
  );
  // In the e10s-case, having content request a tab close might mean
  // that the ContentTask used to send this closeTab message won't
  // get a response (since the message manager may have closed down).
  // So we ignore the Promise that closeTab returns, and use the TabClose
  // event to tell us when the tab has gone away.
  gContentAPI.closeTab();
  await closePromise;
  gTestTab = null;
});
