Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Tests that about:translations records copy-button telemetry each time the copy button is invoked.
*/
add_task(async function test_about_translations_telemetry_copy_button() {
const { aboutTranslationsTestUtils, cleanup } = await openAboutTranslations({
autoDownloadFromRemoteSettings: true,
requireManualCopyButtonReset: true,
});
await TestTranslationsTelemetry.assertEvent(
Glean.translationsAboutTranslationsPage.open,
{
expectedEventCount: 1,
expectNewFlowId: true,
}
);
await TestTranslationsTelemetry.assertEvent(
Glean.translationsAboutTranslationsPage.copyButton,
{
expectedEventCount: 0,
}
);
await aboutTranslationsTestUtils.setSourceLanguageSelectorValue("en");
await aboutTranslationsTestUtils.setTargetLanguageSelectorValue("fr");
const translationComplete = aboutTranslationsTestUtils.waitForEvent(
AboutTranslationsTestUtils.Events.TranslationComplete
);
await aboutTranslationsTestUtils.setSourceTextAreaValue(
"Copy telemetry test source text."
);
await translationComplete;
await aboutTranslationsTestUtils.assertCopyButton({ enabled: true });
await aboutTranslationsTestUtils.assertEvents(
{
expected: [[AboutTranslationsTestUtils.Events.CopyButtonShowCopied]],
},
async () => {
await aboutTranslationsTestUtils.clickCopyButton();
}
);
await TestTranslationsTelemetry.assertEvent(
Glean.translationsAboutTranslationsPage.copyButton,
{
expectedEventCount: 1,
expectNewFlowId: false,
}
);
await aboutTranslationsTestUtils.assertEvents(
{
expected: [[AboutTranslationsTestUtils.Events.CopyButtonShowCopied]],
},
async () => {
await aboutTranslationsTestUtils.clickCopyButton();
}
);
await TestTranslationsTelemetry.assertEvent(
Glean.translationsAboutTranslationsPage.copyButton,
{
expectedEventCount: 2,
expectNewFlowId: false,
}
);
await cleanup();
});