forked from mirrors/gecko-dev
Bug 1758292 - Stop using ChromeUtils.import(..., null) for browser_actions_ShowHeartbeatAction.js. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D140454
This commit is contained in:
parent
bc20120fc3
commit
3a6b2a9fff
3 changed files with 30 additions and 16 deletions
|
|
@ -544,7 +544,6 @@ module.exports = {
|
|||
"dom/push/test/xpcshell/head.js",
|
||||
"dom/push/test/xpcshell/test_broadcast_success.js",
|
||||
"dom/push/test/xpcshell/test_crypto.js",
|
||||
"toolkit/components/normandy/test/browser/browser_actions_ShowHeartbeatAction.js",
|
||||
"toolkit/mozapps/extensions/internal/AddonTestUtils.jsm",
|
||||
"toolkit/mozapps/extensions/test/browser/browser_gmpProvider.js",
|
||||
"toolkit/mozapps/extensions/test/xpcshell/head_addons.js",
|
||||
|
|
|
|||
|
|
@ -62,6 +62,16 @@ const DAY_IN_MS = 24 * 60 * 60 * 1000;
|
|||
const HEARTBEAT_THROTTLE = 1 * DAY_IN_MS;
|
||||
|
||||
class ShowHeartbeatAction extends BaseAction {
|
||||
static Heartbeat = Heartbeat;
|
||||
|
||||
static overrideHeartbeatForTests(newHeartbeat) {
|
||||
if (newHeartbeat) {
|
||||
this.Heartbeat = newHeartbeat;
|
||||
} else {
|
||||
this.Heartbeat = Heartbeat;
|
||||
}
|
||||
}
|
||||
|
||||
get schema() {
|
||||
return ActionSchemas["show-heartbeat"];
|
||||
}
|
||||
|
|
@ -90,7 +100,7 @@ class ShowHeartbeatAction extends BaseAction {
|
|||
throw new Error("No window to show heartbeat in");
|
||||
}
|
||||
|
||||
const heartbeat = new Heartbeat(targetWindow, {
|
||||
const heartbeat = new ShowHeartbeatAction.Heartbeat(targetWindow, {
|
||||
surveyId: this.generateSurveyId(recipe),
|
||||
message,
|
||||
engagementButtonLabel,
|
||||
|
|
|
|||
|
|
@ -1,12 +1,22 @@
|
|||
"use strict";
|
||||
|
||||
ChromeUtils.import("resource://normandy/actions/BaseAction.jsm", this);
|
||||
ChromeUtils.import("resource://normandy/actions/ShowHeartbeatAction.jsm", this);
|
||||
ChromeUtils.import("resource://normandy/lib/ClientEnvironment.jsm", this);
|
||||
ChromeUtils.import("resource://normandy/lib/Heartbeat.jsm", this);
|
||||
ChromeUtils.import("resource://normandy/lib/Storage.jsm", this);
|
||||
ChromeUtils.import("resource://normandy/lib/Uptake.jsm", this);
|
||||
ChromeUtils.import("resource://testing-common/NormandyTestUtils.jsm", this);
|
||||
const { BaseAction } = ChromeUtils.import(
|
||||
"resource://normandy/actions/BaseAction.jsm"
|
||||
);
|
||||
const { ShowHeartbeatAction } = ChromeUtils.import(
|
||||
"resource://normandy/actions/ShowHeartbeatAction.jsm"
|
||||
);
|
||||
const { ClientEnvironment } = ChromeUtils.import(
|
||||
"resource://normandy/lib/ClientEnvironment.jsm"
|
||||
);
|
||||
const { Heartbeat } = ChromeUtils.import(
|
||||
"resource://normandy/lib/Heartbeat.jsm"
|
||||
);
|
||||
const { Storage } = ChromeUtils.import("resource://normandy/lib/Storage.jsm");
|
||||
const { Uptake } = ChromeUtils.import("resource://normandy/lib/Uptake.jsm");
|
||||
const { NormandyTestUtils } = ChromeUtils.import(
|
||||
"resource://testing-common/NormandyTestUtils.jsm"
|
||||
);
|
||||
|
||||
const HOUR_IN_MS = 60 * 60 * 1000;
|
||||
|
||||
|
|
@ -50,15 +60,10 @@ class MockEventEmitter {
|
|||
function withStubbedHeartbeat() {
|
||||
return function(testFunction) {
|
||||
return async function wrappedTestFunction(args) {
|
||||
const backstage = ChromeUtils.import(
|
||||
"resource://normandy/actions/ShowHeartbeatAction.jsm",
|
||||
null
|
||||
);
|
||||
const originalHeartbeat = backstage.Heartbeat;
|
||||
const heartbeatInstanceStub = new MockHeartbeat();
|
||||
const heartbeatClassStub = sinon.stub();
|
||||
heartbeatClassStub.returns(heartbeatInstanceStub);
|
||||
backstage.Heartbeat = heartbeatClassStub;
|
||||
ShowHeartbeatAction.overrideHeartbeatForTests(heartbeatClassStub);
|
||||
|
||||
try {
|
||||
await testFunction({
|
||||
|
|
@ -67,7 +72,7 @@ function withStubbedHeartbeat() {
|
|||
heartbeatInstanceStub,
|
||||
});
|
||||
} finally {
|
||||
backstage.Heartbeat = originalHeartbeat;
|
||||
ShowHeartbeatAction.overrideHeartbeatForTests();
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue