forked from mirrors/gecko-dev
		
	# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D36042 --HG-- extra : source : d3afcafdce650a6f36cebbc126ee93b17f13cf52
		
			
				
	
	
		
			39 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* Any copyright is dedicated to the Public Domain.
 | 
						|
 * http://creativecommons.org/publicdomain/zero/1.0/
 | 
						|
 */
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 | 
						|
const { AttributionCode } = ChromeUtils.import(
 | 
						|
  "resource:///modules/AttributionCode.jsm"
 | 
						|
);
 | 
						|
 | 
						|
add_task(async function test_attribution() {
 | 
						|
  let appPath = Services.dirsvc.get("GreD", Ci.nsIFile).parent.parent.path;
 | 
						|
  let attributionSvc = Cc["@mozilla.org/mac-attribution;1"].getService(
 | 
						|
    Ci.nsIMacAttributionService
 | 
						|
  );
 | 
						|
 | 
						|
  attributionSvc.setReferrerUrl(appPath, "", true);
 | 
						|
  let referrer = attributionSvc.getReferrerUrl(appPath);
 | 
						|
  equal(referrer, "", "force an empty referrer url");
 | 
						|
 | 
						|
  // Set a url referrer, testing both utm and non-utm codes
 | 
						|
  let url = "http://example.com?content=foo&utm_source=bar&utm_content=baz";
 | 
						|
  attributionSvc.setReferrerUrl(appPath, url, true);
 | 
						|
  referrer = attributionSvc.getReferrerUrl(appPath);
 | 
						|
  equal(referrer, url, "overwrite referrer url");
 | 
						|
 | 
						|
  // Does not overwrite existing properties.
 | 
						|
  attributionSvc.setReferrerUrl(appPath, "http://test.com", false);
 | 
						|
  referrer = attributionSvc.getReferrerUrl(appPath);
 | 
						|
  equal(referrer, url, "referrer url is not changed");
 | 
						|
 | 
						|
  let result = await AttributionCode.getAttrDataAsync();
 | 
						|
  Assert.deepEqual(
 | 
						|
    result,
 | 
						|
    { content: "foo", source: "bar" },
 | 
						|
    "parsed attributes match"
 | 
						|
  );
 | 
						|
});
 |