Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Check that the application panel refetches the page manifest when reloading
* or navigating to a new page
*/
add_task(async function () {
await enableApplicationPanel();
info("Loading a page with no manifest");
let url = URL_ROOT_SSL + "resources/manifest/load-no-manifest.html";
const { panel, tab } = await openNewTabAndApplicationPanel(url);
const doc = panel.panelWin.document;
selectPage(panel, "manifest");
info("Waiting for the 'no manifest' message to appear");
await waitFor(() => doc.querySelector(".js-manifest-empty") !== null);
ok(true, "Manifest page displays a 'no manifest' message");
info("Navigating to a page with a manifest");
url = URL_ROOT_SSL + "resources/manifest/load-ok.html";
await navigateTo(url);
info("Waiting for the manifest to show up");
await waitFor(() => doc.querySelector(".js-manifest") !== null);
ok(true, "Manifest displayed successfully");
info("Navigating to a page with a manifest that fails to load");
url = URL_ROOT_SSL + "resources/manifest/load-fail.html";
await navigateTo(url);
info("Waiting for the manifest to fail to load");
await waitFor(() => doc.querySelector(".js-manifest-loaded-error") !== null);
ok(true, "Manifest page displays loading error");
info("Reloading");
await navigateTo(url);
info("Waiting for the manifest to fail to load");
await waitFor(() => doc.querySelector(".js-manifest-loaded-error") !== null);
ok(true, "Manifest page displays loading error");
// close the tab
info("Closing the tab.");
await BrowserTestUtils.removeTab(tab);
});