summaryrefslogtreecommitdiffstats
path: root/comm/mail/components/addrbook/test/browser/browser_telemetry.js
blob: 36b73207c2c5eb0ab6eb9e4600c5902bfc509aeb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

/**
 * Test telemetry related to address book.
 */

let { MailTelemetryForTests } = ChromeUtils.import(
  "resource:///modules/MailGlue.jsm"
);
let { TelemetryTestUtils } = ChromeUtils.importESModule(
  "resource://testing-common/TelemetryTestUtils.sys.mjs"
);

/**
 * Test we're counting address books and contacts.
 */
add_task(async function test_address_book_count() {
  Services.telemetry.clearScalars();

  // Adding some address books and contracts.
  let addrBook1 = createAddressBook("AB 1");
  let addrBook2 = createAddressBook("AB 2");
  let ldapBook = createAddressBook(
    "LDAP Book",
    Ci.nsIAbManager.LDAP_DIRECTORY_TYPE
  );

  let contact1 = createContact("test1", "example");
  let contact2 = createContact("test2", "example");
  let contact3 = createContact("test3", "example");
  addrBook1.addCard(contact1);
  addrBook2.addCard(contact2);
  addrBook2.addCard(contact3);

  // Run the probe.
  MailTelemetryForTests.reportAddressBookTypes();

  let scalars = TelemetryTestUtils.getProcessScalars("parent", true);
  Assert.equal(
    scalars["tb.addressbook.addressbook_count"]["moz-abldapdirectory"],
    1,
    "LDAP address book count must be correct"
  );
  Assert.equal(
    scalars["tb.addressbook.addressbook_count"].jsaddrbook,
    4,
    "JS address book count must be correct"
  );
  Assert.equal(
    scalars["tb.addressbook.contact_count"].jsaddrbook,
    3,
    "Contact count must be correct"
  );

  await promiseDirectoryRemoved(addrBook1.URI);
  await promiseDirectoryRemoved(addrBook2.URI);
  await promiseDirectoryRemoved(ldapBook.URI);
});