mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 02:09:05 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			86 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
requestLongerTimeout(2);
 | 
						|
 | 
						|
/**
 | 
						|
 * Checks that the page renders without issue, and that the expected elements
 | 
						|
 * are there.
 | 
						|
 */
 | 
						|
add_task(async function test_about_inference_enabled() {
 | 
						|
  await openAboutInference({
 | 
						|
    runInPage: async ({ selectors }) => {
 | 
						|
      const { document, window } = content;
 | 
						|
 | 
						|
      function checkElementIsVisible(expectVisible, name) {
 | 
						|
        const expected = expectVisible ? "visible" : "hidden";
 | 
						|
        const element = document.querySelector(selectors[name]);
 | 
						|
        ok(Boolean(element), `Element ${name} was found.`);
 | 
						|
        const { visibility } = window.getComputedStyle(element);
 | 
						|
        is(
 | 
						|
          visibility,
 | 
						|
          expected,
 | 
						|
          `Element ${name} was not ${expected} but should be.`
 | 
						|
        );
 | 
						|
      }
 | 
						|
      checkElementIsVisible(true, "pageHeader");
 | 
						|
      const element = document.querySelector(selectors.warning);
 | 
						|
      const { display } = window.getComputedStyle(element);
 | 
						|
      is(display, "none", "The warning should be hidden");
 | 
						|
    },
 | 
						|
  });
 | 
						|
});
 | 
						|
 | 
						|
/**
 | 
						|
 * Checks that the page renders with a warning when ml is disabled.
 | 
						|
 */
 | 
						|
add_task(async function test_about_inference_disabled() {
 | 
						|
  await openAboutInference({
 | 
						|
    prefs: [["browser.ml.enable", false]],
 | 
						|
    runInPage: async ({ selectors }) => {
 | 
						|
      const { document, window } = content;
 | 
						|
      const element = document.querySelector(selectors.warning);
 | 
						|
      const { display } = window.getComputedStyle(element);
 | 
						|
      is(display, "block", "The warning should be visible");
 | 
						|
      Assert.stringContains(
 | 
						|
        element.message,
 | 
						|
        "browser.ml.enable is set to False !"
 | 
						|
      );
 | 
						|
    },
 | 
						|
  });
 | 
						|
});
 | 
						|
/**
 | 
						|
 * Checks that the inference process is shown on the page
 | 
						|
 */
 | 
						|
add_task(async function test_about_inference_process() {
 | 
						|
  await openAboutInference({
 | 
						|
    runInference: true,
 | 
						|
    runInPage: async ({ selectors }) => {
 | 
						|
      function waitForInnerHTML(selector, substring, interval = 100) {
 | 
						|
        return new Promise((resolve, reject) => {
 | 
						|
          const { document } = content;
 | 
						|
          const element = document.querySelector(selector);
 | 
						|
          if (!element) {
 | 
						|
            reject(new Error(`No element found with selector: ${selector}`));
 | 
						|
            return;
 | 
						|
          }
 | 
						|
          const checkInnerHTML = () => {
 | 
						|
            console.log(
 | 
						|
              `Checking innerHTML of element with selector: ${selector}`
 | 
						|
            );
 | 
						|
            if (element.innerHTML.includes(substring)) {
 | 
						|
              console.log(
 | 
						|
                `Substring "${substring}" found in element with selector: ${selector}`
 | 
						|
              );
 | 
						|
              resolve();
 | 
						|
            } else {
 | 
						|
              // eslint-disable-next-line mozilla/no-arbitrary-setTimeout
 | 
						|
              setTimeout(checkInnerHTML, interval);
 | 
						|
            }
 | 
						|
          };
 | 
						|
          checkInnerHTML();
 | 
						|
        });
 | 
						|
      }
 | 
						|
 | 
						|
      // When the process is shown, we display its memory size in MB
 | 
						|
      await waitForInnerHTML(selectors.processes, "MB");
 | 
						|
    },
 | 
						|
  });
 | 
						|
});
 |