forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			65 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const CONTAINERS_URL =
 | 
						|
  "chrome://browser/content/preferences/dialogs/containers.xhtml";
 | 
						|
 | 
						|
add_task(async function setup() {
 | 
						|
  await openPreferencesViaOpenPreferencesAPI("containers", { leaveOpen: true });
 | 
						|
  registerCleanupFunction(async function() {
 | 
						|
    BrowserTestUtils.removeTab(gBrowser.selectedTab);
 | 
						|
  });
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function() {
 | 
						|
  async function openDialog() {
 | 
						|
    let doc = gBrowser.selectedBrowser.contentDocument;
 | 
						|
 | 
						|
    let dialogPromise = promiseLoadSubDialog(CONTAINERS_URL);
 | 
						|
 | 
						|
    let addButton = doc.getElementById("containersAdd");
 | 
						|
    addButton.doCommand();
 | 
						|
 | 
						|
    let dialog = await dialogPromise;
 | 
						|
 | 
						|
    return dialog.document;
 | 
						|
  }
 | 
						|
 | 
						|
  let { contentDocument } = gBrowser.selectedBrowser;
 | 
						|
  let containerNodes = Array.from(
 | 
						|
    contentDocument.querySelectorAll("[data-category=paneContainers]")
 | 
						|
  );
 | 
						|
  ok(
 | 
						|
    containerNodes.find(node => node.getBoundingClientRect().width > 0),
 | 
						|
    "Should actually be showing the container nodes."
 | 
						|
  );
 | 
						|
 | 
						|
  let doc = await openDialog();
 | 
						|
 | 
						|
  let name = doc.getElementById("name");
 | 
						|
  let btnApplyChanges = doc.querySelector("dialog").getButton("accept");
 | 
						|
 | 
						|
  Assert.equal(name.value, "", "The name textbox should initlally be empty");
 | 
						|
  Assert.ok(
 | 
						|
    btnApplyChanges.disabled,
 | 
						|
    "The done button should initially be disabled"
 | 
						|
  );
 | 
						|
 | 
						|
  function setName(value) {
 | 
						|
    name.value = value;
 | 
						|
 | 
						|
    let event = new doc.defaultView.InputEvent("input", { data: value });
 | 
						|
    SpecialPowers.dispatchEvent(doc.defaultView, name, event);
 | 
						|
  }
 | 
						|
 | 
						|
  setName("test");
 | 
						|
 | 
						|
  Assert.ok(
 | 
						|
    !btnApplyChanges.disabled,
 | 
						|
    "The done button should be enabled when the value is not empty"
 | 
						|
  );
 | 
						|
 | 
						|
  setName("");
 | 
						|
 | 
						|
  Assert.ok(
 | 
						|
    btnApplyChanges.disabled,
 | 
						|
    "The done button should be disabled when the value is empty"
 | 
						|
  );
 | 
						|
});
 |