forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			60 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			1.8 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 manageLink = document.querySelector("#customization-lwtheme-link");
 | |
| 
 | |
|   // Check the manage themes button, it should open about:addons.
 | |
|   let waitForNewTab = BrowserTestUtils.waitForNewTab(gBrowser, "about:addons");
 | |
|   manageLink.click();
 | |
|   let addonsTab = await waitForNewTab;
 | |
| 
 | |
|   is(gBrowser.currentURI.spec, "about:addons", "Manage opened about:addons");
 | |
|   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"]],
 | |
|     "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();
 | |
| });
 | 
