diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /dom/base/test/browser_page_load_event_telemetry.js | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/base/test/browser_page_load_event_telemetry.js')
-rw-r--r-- | dom/base/test/browser_page_load_event_telemetry.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/dom/base/test/browser_page_load_event_telemetry.js b/dom/base/test/browser_page_load_event_telemetry.js new file mode 100644 index 0000000000..2a8377eacc --- /dev/null +++ b/dom/base/test/browser_page_load_event_telemetry.js @@ -0,0 +1,46 @@ +"use strict"; + +const { TelemetryTestUtils } = ChromeUtils.importESModule( + "resource://testing-common/TelemetryTestUtils.sys.mjs" +); + +const ALL_CHANNELS = Ci.nsITelemetry.DATASET_ALL_CHANNELS; + +add_task(async function() { + let tab = await BrowserTestUtils.openNewForegroundTab({ + gBrowser, + waitForLoad: true, + }); + + let browser = tab.linkedBrowser; + + // Reset event counts. + Services.telemetry.clearEvents(); + TelemetryTestUtils.assertNumberOfEvents(0); + + // Add checks for pageload ping and pageload event + let pingSubmitted = false; + GleanPings.pageload.testBeforeNextSubmit(reason => { + pingSubmitted = true; + Assert.equal(reason, "threshold"); + let record = Glean.perf.pageLoad.testGetValue(); + Assert.greaterOrEqual( + record.length, + 30, + "Should have at least 30 page load events" + ); + }); + + // Perform page load 30 times to trigger the ping being sent + for (let i = 0; i < 30; i++) { + BrowserTestUtils.loadURI(browser, "https://example.com"); + await BrowserTestUtils.browserLoaded(browser); + } + + await BrowserTestUtils.waitForCondition( + () => pingSubmitted, + "Page load ping should have been submitted." + ); + + BrowserTestUtils.removeTab(tab); +}); |