"use strict";

const PERMISSIONS_URL =
  "chrome://browser/content/preferences/dialogs/permissions.xhtml";

add_task(async function urlFieldVisibleForPopupPermissions() {
  await openPreferencesViaOpenPreferencesAPI("panePrivacy", {
    leaveOpen: true,
  });
  let win = gBrowser.selectedBrowser.contentWindow;
  let doc = win.document;
  let popupPolicyCheckbox = doc.getElementById("popupPolicy");
  ok(
    !popupPolicyCheckbox.checked,
    "popupPolicyCheckbox should be unchecked by default"
  );
  let popupPolicyButton = doc.getElementById("popupPolicyButton");
  ok(popupPolicyButton, "popupPolicyButton found");
  let popupPolicyButtonAvailable =
    waitForSettingControlChange(popupPolicyButton);
  popupPolicyCheckbox.click();
  await popupPolicyButtonAvailable;
  let dialogPromise = promiseLoadSubDialog(PERMISSIONS_URL);
  popupPolicyButton.click();
  let dialog = await dialogPromise;
  ok(dialog, "dialog loaded");

  let urlLabel = dialog.document.getElementById("urlLabel");
  ok(
    !urlLabel.hidden,
    "urlLabel should be visible when one of block/session/allow visible"
  );
  let url = dialog.document.getElementById("url");
  ok(
    !url.hidden,
    "url should be visible when one of block/session/allow visible"
  );

  popupPolicyCheckbox.click();
  gBrowser.removeCurrentTab();
});
