tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

browser_containers_name_input.js (1954B)


      1 const CONTAINERS_URL =
      2  "chrome://browser/content/preferences/dialogs/containers.xhtml";
      3 
      4 add_setup(async function () {
      5  await openPreferencesViaOpenPreferencesAPI("containers", { leaveOpen: true });
      6  registerCleanupFunction(async function () {
      7    BrowserTestUtils.removeTab(gBrowser.selectedTab);
      8  });
      9 });
     10 
     11 add_task(async function () {
     12  async function openDialog() {
     13    let doc = gBrowser.selectedBrowser.contentDocument;
     14 
     15    let dialogPromise = promiseLoadSubDialog(CONTAINERS_URL);
     16 
     17    let addButton = doc.getElementById("containersAdd");
     18    addButton.doCommand();
     19 
     20    let dialog = await dialogPromise;
     21 
     22    return dialog.document;
     23  }
     24 
     25  let { contentDocument } = gBrowser.selectedBrowser;
     26  let containerNodes = Array.from(
     27    contentDocument.querySelectorAll("[data-category=paneContainers]")
     28  );
     29  ok(
     30    containerNodes.find(node => node.getBoundingClientRect().width > 0),
     31    "Should actually be showing the container nodes."
     32  );
     33 
     34  let doc = await openDialog();
     35 
     36  let name = doc.getElementById("name");
     37  let btnApplyChanges = doc.querySelector("dialog").getButton("accept");
     38 
     39  Assert.equal(name.value, "", "The name textbox should initlally be empty");
     40  Assert.ok(
     41    btnApplyChanges.disabled,
     42    "The done button should initially be disabled"
     43  );
     44 
     45  function setName(value) {
     46    name.value = value;
     47 
     48    let event = new doc.defaultView.InputEvent("input", { data: value });
     49    SpecialPowers.dispatchEvent(doc.defaultView, name, event);
     50  }
     51 
     52  setName("test");
     53 
     54  Assert.ok(
     55    !btnApplyChanges.disabled,
     56    "The done button should be enabled when the value is not empty"
     57  );
     58 
     59  setName("");
     60 
     61  Assert.ok(
     62    btnApplyChanges.disabled,
     63    "The done button should be disabled when the value is empty"
     64  );
     65 
     66  setName("\u0009\u000B\u000C\u0020\u00A0\uFEFF\u000A\u000D\u2028\u2029");
     67 
     68  Assert.ok(
     69    btnApplyChanges.disabled,
     70    "The done button should be disabled when the value contains only whitespaces"
     71  );
     72 });