Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
// Add a simple test for the navigation committed flag.
add_task(async function test_committed() {
const tab = await addTabAndWaitForNavigated(gBrowser, FIRST_URL);
const browser = tab.linkedBrowser;
const navigationObjects = [];
const onEvent = name => {
const navigation = navigationManager.getNavigationForBrowsingContext(
browser.browsingContext
);
navigationObjects.push({ name, committed: navigation.committed });
};
const navigationManager = new NavigationManager();
navigationManager.on("navigation-started", onEvent);
navigationManager.on("navigation-committed", onEvent);
navigationManager.on("navigation-stopped", onEvent);
navigationManager.startMonitoring();
await loadURL(browser, SECOND_URL);
await BrowserTestUtils.waitForCondition(() => navigationObjects.length === 3);
is(
navigationObjects[0].name,
"navigation-started",
"First event is navigation-started"
);
ok(
!navigationObjects[0].committed,
"Navigation object in navigation-started is not committed yet"
);
is(
navigationObjects[1].name,
"navigation-committed",
"Second event is navigation-committed"
);
ok(
navigationObjects[1].committed,
"Navigation object in navigation-committed is committed"
);
is(
navigationObjects[2].name,
"navigation-stopped",
"Third event is navigation-stopped"
);
ok(
navigationObjects[2].committed,
"Navigation object in navigation-stopped is committed"
);
navigationManager.off("navigation-started", onEvent);
navigationManager.off("navigation-committed", onEvent);
navigationManager.off("navigation-stopped", onEvent);
navigationManager.stopMonitoring();
});