mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-06 11:18:19 +02:00
Depends on D191341 Differential Revision: https://phabricator.services.mozilla.com/D191238
91 lines
2.8 KiB
JavaScript
91 lines
2.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
"use strict";
|
|
|
|
ChromeUtils.defineESModuleGetters(this, {
|
|
pktTelemetry: "chrome://pocket/content/pktTelemetry.sys.mjs",
|
|
});
|
|
|
|
function test_runner(test) {
|
|
let testTask = async () => {
|
|
// Before each
|
|
const sandbox = sinon.createSandbox();
|
|
try {
|
|
await test({ sandbox });
|
|
} finally {
|
|
// After each
|
|
sandbox.restore();
|
|
}
|
|
};
|
|
|
|
// Copy the name of the test function to identify the test
|
|
Object.defineProperty(testTask, "name", { value: test.name });
|
|
add_task(testTask);
|
|
}
|
|
|
|
test_runner(async function test_submitPocketButtonPing({ sandbox }) {
|
|
const creationDate = "19640";
|
|
const impressionId = "{422e3da9-c694-4fd2-b676-8ae070156128}";
|
|
sandbox.stub(pktTelemetry, "impressionId").value(impressionId);
|
|
sandbox.stub(pktTelemetry, "_profileCreationDate").returns(creationDate);
|
|
|
|
const eventAction = "some action like 'click'";
|
|
const eventSource = "some source like 'save_button'";
|
|
|
|
const assertConstantStuff = () => {
|
|
Assert.equal(
|
|
"{" + Glean.pocketButton.impressionId.testGetValue() + "}",
|
|
impressionId
|
|
);
|
|
Assert.equal(Glean.pocketButton.pocketLoggedInStatus.testGetValue(), false);
|
|
Assert.equal(
|
|
Glean.pocketButton.profileCreationDate.testGetValue(),
|
|
creationDate
|
|
);
|
|
|
|
Assert.equal(Glean.pocketButton.eventAction.testGetValue(), eventAction);
|
|
Assert.equal(Glean.pocketButton.eventSource.testGetValue(), eventSource);
|
|
};
|
|
|
|
let submitted = false;
|
|
GleanPings.pocketButton.testBeforeNextSubmit(() => {
|
|
submitted = true;
|
|
assertConstantStuff();
|
|
Assert.equal(Glean.pocketButton.eventPosition.testGetValue(), null);
|
|
Assert.equal(Glean.pocketButton.model.testGetValue(), null);
|
|
});
|
|
|
|
pktTelemetry.submitPocketButtonPing(eventAction, eventSource);
|
|
Assert.ok(submitted, "Ping submitted successfully");
|
|
|
|
submitted = false;
|
|
GleanPings.pocketButton.testBeforeNextSubmit(() => {
|
|
submitted = true;
|
|
assertConstantStuff();
|
|
Assert.equal(Glean.pocketButton.eventPosition.testGetValue(), 0);
|
|
Assert.equal(Glean.pocketButton.model.testGetValue(), null);
|
|
});
|
|
|
|
pktTelemetry.submitPocketButtonPing(eventAction, eventSource, 0, null);
|
|
Assert.ok(submitted, "Ping submitted successfully");
|
|
|
|
submitted = false;
|
|
GleanPings.pocketButton.testBeforeNextSubmit(() => {
|
|
submitted = true;
|
|
assertConstantStuff();
|
|
// falsey but not undefined positions will be omitted.
|
|
Assert.equal(Glean.pocketButton.eventPosition.testGetValue(), null);
|
|
Assert.equal(
|
|
Glean.pocketButton.model.testGetValue(),
|
|
"some-really-groovy-model"
|
|
);
|
|
});
|
|
|
|
pktTelemetry.submitPocketButtonPing(
|
|
eventAction,
|
|
eventSource,
|
|
false,
|
|
"some-really-groovy-model"
|
|
);
|
|
Assert.ok(submitted, "Ping submitted successfully");
|
|
});
|