fune/dom/base/test/browser_page_load_event_telemetry.js
2022-04-11 17:15:00 +00:00

40 lines
1 KiB
JavaScript

"use strict";
const { TelemetryTestUtils } = ChromeUtils.import(
"resource://testing-common/TelemetryTestUtils.jsm"
);
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);
// Perform page load
BrowserTestUtils.loadURI(browser, "https://example.com");
await BrowserTestUtils.browserLoaded(browser);
// Check that a page load event exists
let event_found = await TestUtils.waitForCondition(() => {
let events = Services.telemetry.snapshotEvents(ALL_CHANNELS, true).content;
if (events && events.length) {
events = events.filter(e => e[1] == "page_load");
if (events.length >= 1) {
return true;
}
}
return false;
}, "waiting for page load event to be flushed.");
Assert.ok(event_found);
BrowserTestUtils.removeTab(tab);
});