Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

"use strict";
const SIGNUP_DETECTION_HISTOGRAM = "PWMGR_SIGNUP_FORM_DETECTION_MS";
const TEST_URL = `https://example.com${DIRECTORY_PATH}form_signup_detection.html`;
/**
*
* @param {Object} histogramData The histogram data to examine
* @returns The amount of entries found in the histogram data
*/
function countEntries(histogramData) {
return histogramData
? Object.values(histogramData.values).reduce((a, b) => a + b, 0)
: null;
}
/**
* @param {String} id The histogram to examine
* @param {Number} expected The expected amount of entries for a histogram
*/
async function countEntriesOfChildHistogram(id, expected) {
let histogram;
await TestUtils.waitForCondition(() => {
let histograms = Services.telemetry.getSnapshotForHistograms(
"main",
false
).content;
histogram = histograms[id];
return !!histogram && countEntries(histogram) == expected;
}, `The histogram ${id} was expected to have ${expected} entries.`);
Assert.equal(countEntries(histogram), expected);
}
add_setup(async () => {
await SpecialPowers.pushPrefEnv({
set: [["signon.signupDetection.enabled", true]],
});
Services.telemetry.getHistogramById(SIGNUP_DETECTION_HISTOGRAM).clear();
});
add_task(async () => {
let formProcessed = listenForTestNotification("FormProcessed", 2);
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_URL);
await formProcessed;
await countEntriesOfChildHistogram(SIGNUP_DETECTION_HISTOGRAM, 2);
gBrowser.removeTab(tab);
});