forked from mirrors/gecko-dev
59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
add_setup(() => {
|
|
// FOG needs to be initialized in order for data to flow.
|
|
Services.fog.initializeFOG();
|
|
Services.telemetry.clearScalars();
|
|
});
|
|
|
|
/**
|
|
* Tests that calling `BackupService.takeMeasurements` will call the measure
|
|
* method of all registered BackupResource classes.
|
|
*/
|
|
add_task(async function test_takeMeasurements() {
|
|
let sandbox = sinon.createSandbox();
|
|
sandbox.stub(FakeBackupResource1.prototype, "measure").resolves();
|
|
sandbox
|
|
.stub(FakeBackupResource2.prototype, "measure")
|
|
.rejects(new Error("Some failure to measure"));
|
|
|
|
let bs = new BackupService({ FakeBackupResource1, FakeBackupResource2 });
|
|
await bs.takeMeasurements();
|
|
|
|
for (let backupResourceClass of [FakeBackupResource1, FakeBackupResource2]) {
|
|
Assert.ok(
|
|
backupResourceClass.prototype.measure.calledOnce,
|
|
"Measure was called"
|
|
);
|
|
Assert.ok(
|
|
backupResourceClass.prototype.measure.calledWith(PathUtils.profileDir),
|
|
"Measure was called with the profile directory argument"
|
|
);
|
|
}
|
|
|
|
sandbox.restore();
|
|
});
|
|
|
|
/**
|
|
* Tests that we can measure the disk space available in the profile directory.
|
|
*/
|
|
add_task(async function test_profDDiskSpace() {
|
|
let bs = new BackupService();
|
|
await bs.takeMeasurements();
|
|
let measurement = Glean.browserBackup.profDDiskSpace.testGetValue();
|
|
TelemetryTestUtils.assertScalar(
|
|
TelemetryTestUtils.getProcessScalars("parent", false, true),
|
|
"browser.backup.prof_d_disk_space",
|
|
measurement
|
|
);
|
|
|
|
Assert.greater(
|
|
measurement,
|
|
0,
|
|
"Should have collected a measurement for the profile directory storage " +
|
|
"device"
|
|
);
|
|
});
|