summaryrefslogtreecommitdiffstats
path: root/remote/cdp/test/browser/page/browser_frameNavigated.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /remote/cdp/test/browser/page/browser_frameNavigated.js
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'remote/cdp/test/browser/page/browser_frameNavigated.js')
-rw-r--r--remote/cdp/test/browser/page/browser_frameNavigated.js93
1 files changed, 93 insertions, 0 deletions
diff --git a/remote/cdp/test/browser/page/browser_frameNavigated.js b/remote/cdp/test/browser/page/browser_frameNavigated.js
new file mode 100644
index 0000000000..4453c63749
--- /dev/null
+++ b/remote/cdp/test/browser/page/browser_frameNavigated.js
@@ -0,0 +1,93 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+add_task(async function noEventWhenPageDomainDisabled({ client }) {
+ await runFrameNavigatedTest(client, 0, async () => {
+ info("Navigate to a page with nested iframes");
+ await loadURL(FRAMESET_NESTED_URL);
+ });
+});
+
+add_task(async function noEventAfterPageDomainDisabled({ client }) {
+ const { Page } = client;
+
+ await Page.enable();
+ await Page.disable();
+
+ await runFrameNavigatedTest(client, 0, async () => {
+ info("Navigate to a page with nested iframes");
+ await loadURL(FRAMESET_NESTED_URL);
+ });
+});
+
+add_task(async function eventWhenNavigatingWithNoFrames({ client }) {
+ const { Page } = client;
+
+ await Page.enable();
+
+ await runFrameNavigatedTest(client, 1, async () => {
+ info("Navigate to a page with no iframes");
+ await loadURL(PAGE_URL);
+ });
+});
+
+add_task(async function eventsWhenNavigatingWithFrames({ client }) {
+ const { Page } = client;
+
+ await Page.enable();
+
+ await runFrameNavigatedTest(client, 3, async () => {
+ info("Navigate to a page with iframes");
+ await loadURL(FRAMESET_MULTI_URL);
+ });
+});
+
+add_task(async function eventWhenNavigatingWithNestedFrames({ client }) {
+ const { Page } = client;
+
+ await Page.enable();
+
+ await runFrameNavigatedTest(client, 4, async () => {
+ info("Navigate to a page with nested iframes");
+ await loadURL(FRAMESET_NESTED_URL);
+ });
+});
+
+async function runFrameNavigatedTest(client, expectedEventCount, callback) {
+ const { Page } = client;
+
+ const NAVIGATED = "Page.frameNavigated";
+
+ const history = new RecordEvents(expectedEventCount);
+ history.addRecorder({
+ event: Page.frameNavigated,
+ eventName: NAVIGATED,
+ messageFn: payload => {
+ return `Received ${NAVIGATED} for frame id ${payload.frame.id}`;
+ },
+ });
+
+ await callback();
+
+ const frameNavigatedEvents = await history.record();
+
+ is(
+ frameNavigatedEvents.length,
+ expectedEventCount,
+ "Got expected amount of frameNavigated events"
+ );
+ if (expectedEventCount == 0) {
+ return;
+ }
+
+ const frames = await getFlattenedFrameTree(client);
+
+ frameNavigatedEvents.forEach(({ payload }) => {
+ const { frame } = payload;
+
+ const expectedFrame = frames.get(frame.id);
+ Assert.deepEqual(frame, expectedFrame, "Got expected frame details");
+ });
+}