99 lines
3.1 KiB
JavaScript
99 lines
3.1 KiB
JavaScript
/* 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/. */
|
|
|
|
const { NavigationManager } = ChromeUtils.importESModule(
|
|
"chrome://remote/content/shared/NavigationManager.sys.mjs"
|
|
);
|
|
const { TabManager } = ChromeUtils.importESModule(
|
|
"chrome://remote/content/shared/TabManager.sys.mjs"
|
|
);
|
|
|
|
const TEST_URL = "https://example.com/document-builder.sjs?html=test1";
|
|
const TEST_URL_CLOSED_PORT = "http://127.0.0.1:36325/";
|
|
const TEST_URL_WRONG_URI = "https://www.wronguri.wronguri/";
|
|
|
|
add_task(async function testClosedPort() {
|
|
const events = [];
|
|
const onEvent = (name, data) => events.push({ name, data });
|
|
|
|
const navigationManager = new NavigationManager();
|
|
navigationManager.on("navigation-started", onEvent);
|
|
navigationManager.on("navigation-stopped", onEvent);
|
|
|
|
const tab = addTab(gBrowser, TEST_URL);
|
|
const browser = tab.linkedBrowser;
|
|
await BrowserTestUtils.browserLoaded(browser);
|
|
|
|
const navigableId = TabManager.getIdForBrowser(browser);
|
|
|
|
navigationManager.startMonitoring();
|
|
is(
|
|
navigationManager.getNavigationForBrowsingContext(browser.browsingContext),
|
|
null,
|
|
"No navigation recorded yet"
|
|
);
|
|
is(events.length, 0, "No event recorded");
|
|
|
|
await loadURL(browser, TEST_URL_CLOSED_PORT, { maybeErrorPage: true });
|
|
|
|
const firstNavigation = navigationManager.getNavigationForBrowsingContext(
|
|
browser.browsingContext
|
|
);
|
|
assertNavigation(firstNavigation, TEST_URL_CLOSED_PORT);
|
|
|
|
is(events.length, 2, "Two events recorded");
|
|
assertNavigationEvents(
|
|
events,
|
|
TEST_URL_CLOSED_PORT,
|
|
firstNavigation.navigationId,
|
|
navigableId
|
|
);
|
|
|
|
navigationManager.off("navigation-started", onEvent);
|
|
navigationManager.off("navigation-stopped", onEvent);
|
|
navigationManager.stopMonitoring();
|
|
});
|
|
|
|
add_task(async function testWrongURI() {
|
|
const events = [];
|
|
const onEvent = (name, data) => events.push({ name, data });
|
|
|
|
const navigationManager = new NavigationManager();
|
|
navigationManager.on("navigation-started", onEvent);
|
|
navigationManager.on("navigation-stopped", onEvent);
|
|
|
|
const tab = addTab(gBrowser, TEST_URL);
|
|
const browser = tab.linkedBrowser;
|
|
await BrowserTestUtils.browserLoaded(browser);
|
|
|
|
const navigableId = TabManager.getIdForBrowser(browser);
|
|
|
|
navigationManager.startMonitoring();
|
|
|
|
is(
|
|
navigationManager.getNavigationForBrowsingContext(browser.browsingContext),
|
|
null,
|
|
"No navigation recorded yet"
|
|
);
|
|
is(events.length, 0, "No event recorded");
|
|
|
|
await loadURL(browser, TEST_URL_WRONG_URI, { maybeErrorPage: true });
|
|
|
|
const firstNavigation = navigationManager.getNavigationForBrowsingContext(
|
|
browser.browsingContext
|
|
);
|
|
assertNavigation(firstNavigation, TEST_URL_WRONG_URI);
|
|
|
|
is(events.length, 2, "Two events recorded");
|
|
assertNavigationEvents(
|
|
events,
|
|
TEST_URL_WRONG_URI,
|
|
firstNavigation.navigationId,
|
|
navigableId
|
|
);
|
|
|
|
navigationManager.off("navigation-started", onEvent);
|
|
navigationManager.off("navigation-stopped", onEvent);
|
|
navigationManager.stopMonitoring();
|
|
});
|