mirror of
https://github.com/Feodor2/Mypal68.git
synced 2025-06-21 00:05:48 -04:00
40 lines
1.3 KiB
JavaScript
40 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"
|
|
);
|
|
});
|