forked from mirrors/gecko-dev
		
	Differential Revision: https://phabricator.services.mozilla.com/D66128 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			72 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
add_task(function clearTelemetry() {
 | 
						|
  Services.telemetry.clearEvents();
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function testCustomize() {
 | 
						|
  let getMoreURL = "about:blank#getMoreThemes";
 | 
						|
 | 
						|
  // Reset the theme prefs to ensure they haven't been messed with.
 | 
						|
  await SpecialPowers.pushPrefEnv({
 | 
						|
    set: [["lightweightThemes.getMoreURL", getMoreURL]],
 | 
						|
  });
 | 
						|
 | 
						|
  await startCustomizing();
 | 
						|
 | 
						|
  // Find the footer buttons to test.
 | 
						|
  let footerRow = document.getElementById("customization-lwtheme-menu-footer");
 | 
						|
  let [manageButton, getMoreButton] = footerRow.childNodes;
 | 
						|
 | 
						|
  // Check the manage button, it should open about:addons.
 | 
						|
  let waitForNewTab = BrowserTestUtils.waitForNewTab(gBrowser, "about:addons");
 | 
						|
  manageButton.click();
 | 
						|
  let addonsTab = await waitForNewTab;
 | 
						|
 | 
						|
  is(gBrowser.currentURI.spec, "about:addons", "Manage opened about:addons");
 | 
						|
  BrowserTestUtils.removeTab(addonsTab);
 | 
						|
 | 
						|
  // Check the get more button, we mocked it to open getMoreURL.
 | 
						|
  waitForNewTab = BrowserTestUtils.waitForNewTab(gBrowser, getMoreURL);
 | 
						|
  getMoreButton.click();
 | 
						|
  addonsTab = await waitForNewTab;
 | 
						|
 | 
						|
  is(gBrowser.currentURI.spec, getMoreURL, "Get more opened AMO");
 | 
						|
  BrowserTestUtils.removeTab(addonsTab);
 | 
						|
 | 
						|
  let snapshot = Services.telemetry.snapshotEvents(
 | 
						|
    Ci.nsITelemetry.DATASET_PRERELEASE_CHANNELS,
 | 
						|
    true
 | 
						|
  );
 | 
						|
 | 
						|
  // Make sure we got some data.
 | 
						|
  ok(
 | 
						|
    snapshot.parent && !!snapshot.parent.length,
 | 
						|
    "Got parent telemetry events in the snapshot"
 | 
						|
  );
 | 
						|
 | 
						|
  // Only look at the related events after stripping the timestamp and category.
 | 
						|
  let relatedEvents = snapshot.parent
 | 
						|
    .filter(
 | 
						|
      ([timestamp, category, method, object]) =>
 | 
						|
        category == "addonsManager" && object == "customize"
 | 
						|
    )
 | 
						|
    .map(relatedEvent => relatedEvent.slice(2, 6));
 | 
						|
 | 
						|
  // Events are now [method, object, value, extra] as expected.
 | 
						|
  Assert.deepEqual(
 | 
						|
    relatedEvents,
 | 
						|
    [
 | 
						|
      ["link", "customize", "manageThemes"],
 | 
						|
      ["link", "customize", "getThemes"],
 | 
						|
    ],
 | 
						|
    "The events are recorded correctly"
 | 
						|
  );
 | 
						|
 | 
						|
  // Wait for customize mode to be re-entered now that the customize tab is
 | 
						|
  // active. This is needed for endCustomizing() to work properly.
 | 
						|
  await TestUtils.waitForCondition(
 | 
						|
    () => document.documentElement.getAttribute("customizing") == "true"
 | 
						|
  );
 | 
						|
  await endCustomizing();
 | 
						|
});
 |