/* Any copyright is dedicated to the Public Domain.
   https://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

async function openAndCloseGlance() {
  await openGlanceOnTab(async glanceTab => {
    ok(
      glanceTab.hasAttribute("zen-glance-tab"),
      "The glance tab should have the zen-glance-tab attribute"
    );
  });
}

add_task(async function test_Glance_Close_No_Tabs() {
  const currentTab = gBrowser.selectedTab;
  await openAndCloseGlance();
  Assert.equal(
    gBrowser.selectedTab,
    currentTab,
    "The original tab should be selected"
  );
  ok(currentTab.selected, "The original tab should be visually selected");
});

add_task(async function test_Glance_Close_With_Next_Tab() {
  const originalTab = gBrowser.selectedTab;
  await BrowserTestUtils.withNewTab(
    { url: "https://example.com", gBrowser, waitForLoad: false },
    async function () {
      const selectedTab = gBrowser.selectedTab;
      Assert.notEqual(selectedTab, originalTab, "A new tab should be selected");
      await openAndCloseGlance();
      Assert.equal(
        gBrowser.selectedTab,
        selectedTab,
        "The new tab should still be selected"
      );
      ok(selectedTab.selected, "The new tab should be visually selected");

      gBrowser.selectedTab = originalTab;
    }
  );
});
