зеркало из https://github.com/mozilla/gecko-dev.git
33 строки
1.3 KiB
JavaScript
33 строки
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");
|
|
});
|