diff options
Diffstat (limited to 'comm/mail/test/browser/cloudfile/browser_filelinkTelemetry.js')
-rw-r--r-- | comm/mail/test/browser/cloudfile/browser_filelinkTelemetry.js | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/comm/mail/test/browser/cloudfile/browser_filelinkTelemetry.js b/comm/mail/test/browser/cloudfile/browser_filelinkTelemetry.js new file mode 100644 index 0000000000..100cbdd1c6 --- /dev/null +++ b/comm/mail/test/browser/cloudfile/browser_filelinkTelemetry.js @@ -0,0 +1,123 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Test telemetry related to filelink. + */ + +let { TelemetryTestUtils } = ChromeUtils.importESModule( + "resource://testing-common/TelemetryTestUtils.sys.mjs" +); +let { gMockFilePicker, gMockFilePickReg } = ChromeUtils.import( + "resource://testing-common/mozmill/AttachmentHelpers.jsm" +); +let { gMockCloudfileManager } = ChromeUtils.import( + "resource://testing-common/mozmill/CloudfileHelpers.jsm" +); +let { + add_attachments, + add_cloud_attachments, + close_compose_window, + open_compose_new_mail, + setup_msg_contents, +} = ChromeUtils.import("resource://testing-common/mozmill/ComposeHelpers.jsm"); +let { mc } = ChromeUtils.import( + "resource://testing-common/mozmill/FolderDisplayHelpers.jsm" +); +let { wait_for_notification_to_stop } = ChromeUtils.import( + "resource://testing-common/mozmill/NotificationBoxHelpers.jsm" +); +let { cloudFileAccounts } = ChromeUtils.import( + "resource:///modules/cloudFileAccounts.jsm" +); + +let cloudType = "default"; +let kInsertNotificationPref = + "mail.compose.big_attachments.insert_notification"; + +let maxSize = + Services.prefs.getIntPref("mail.compose.big_attachments.threshold_kb") * 1024; + +add_setup(function () { + requestLongerTimeout(2); + + gMockCloudfileManager.register(cloudType); + gMockFilePickReg.register(); + + Services.prefs.setBoolPref(kInsertNotificationPref, true); +}); + +registerCleanupFunction(function () { + gMockCloudfileManager.unregister(cloudType); + gMockFilePickReg.unregister(); + Services.prefs.clearUserPref(kInsertNotificationPref); +}); + +let kBoxId = "compose-notification-bottom"; +let kNotificationValue = "bigAttachment"; + +/** + * Check that we're counting file size uploaded. + */ +add_task(async function test_filelink_uploaded_size() { + Services.telemetry.clearScalars(); + let testFile1Size = 495; + let testFile2Size = 637; + let totalSize = testFile1Size + testFile2Size; + + gMockFilePicker.returnFiles = collectFiles([ + "./data/testFile1", + "./data/testFile2", + ]); + + let provider = cloudFileAccounts.getProviderForType(cloudType); + let cwc = open_compose_new_mail(mc); + let account = cloudFileAccounts.createAccount(cloudType); + + add_cloud_attachments(cwc, account, false); + gMockCloudfileManager.resolveUploads(); + wait_for_notification_to_stop(cwc.window, kBoxId, "bigAttachmentUploading"); + + let scalars = TelemetryTestUtils.getProcessScalars("parent", true); + Assert.equal( + scalars["tb.filelink.uploaded_size"][provider.displayName], + totalSize, + "Count of uploaded size must be correct." + ); + close_compose_window(cwc); +}); + +/** + * Check that we're counting filelink suggestion ignored. + */ +add_task(async function test_filelink_ignored() { + Services.telemetry.clearScalars(); + + let cwc = open_compose_new_mail(mc); + setup_msg_contents( + cwc, + "test@example.org", + "Testing ignoring filelink suggestion", + "Hello! " + ); + + // Multiple big attachments should be counted as one ignoring. + add_attachments(cwc, "https://www.example.com/1", maxSize); + add_attachments(cwc, "https://www.example.com/2", maxSize + 10); + add_attachments(cwc, "https://www.example.com/3", maxSize - 1); + let aftersend = BrowserTestUtils.waitForEvent(cwc.window, "aftersend"); + EventUtils.synthesizeMouseAtCenter( + cwc.window.document.getElementById("button-send"), + {}, + cwc.window.document.getElementById("button-send").ownerGlobal + ); + await aftersend; + let scalars = TelemetryTestUtils.getProcessScalars("parent"); + Assert.equal( + scalars["tb.filelink.ignored"], + 1, + "Count of ignored times must be correct." + ); + close_compose_window(cwc, true); + close_compose_window(cwc); +}); |