mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-29 07:42:04 +00:00
Bug 1031326 - Fix experiment cache upgrade: the cache data is a raw JSObject, not a map. r=gfritzsche
This commit is contained in:
parent
1c1e53ed43
commit
5c436f72de
@ -1453,7 +1453,7 @@ Experiments.ExperimentEntry.prototype = {
|
||||
initFromCacheData: function (data) {
|
||||
for (let [key, dval] of this.UPGRADE_KEYS) {
|
||||
if (!(key in data)) {
|
||||
data.set(key, dval);
|
||||
data[key] = dval;
|
||||
}
|
||||
}
|
||||
|
||||
|
55
browser/experiments/test/xpcshell/test_upgrade.js
Normal file
55
browser/experiments/test/xpcshell/test_upgrade.js
Normal file
@ -0,0 +1,55 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
Cu.import("resource:///modules/experiments/Experiments.jsm");
|
||||
|
||||
const SEC_IN_ONE_DAY = 24 * 60 * 60;
|
||||
const MS_IN_ONE_DAY = SEC_IN_ONE_DAY * 1000;
|
||||
|
||||
let cacheData = {
|
||||
_enabled: true,
|
||||
_manifestData: {
|
||||
id: "foobartestid",
|
||||
xpiURL: "http://example.com/foo.xpi",
|
||||
xpiHash: "sha256:abcde",
|
||||
startTime: 0,
|
||||
endTime: 2000000000,
|
||||
maxActiveSeconds: 40000000,
|
||||
appName: "TestApp",
|
||||
channel: "test-foo",
|
||||
},
|
||||
_needsUpdate: false,
|
||||
_randomValue: 0.5,
|
||||
_failedStart: false,
|
||||
_name: "Foo",
|
||||
_description: "Foobar",
|
||||
_homepageURL: "",
|
||||
_addonId: "foo@test",
|
||||
_startDate: 0,
|
||||
_endDate: 2000000000,
|
||||
_branch: null
|
||||
};
|
||||
|
||||
add_task(function* test_valid() {
|
||||
let e = new Experiments.ExperimentEntry();
|
||||
Assert.ok(e.initFromCacheData(cacheData));
|
||||
Assert.ok(e.enabled);
|
||||
});
|
||||
|
||||
add_task(function* test_upgrade() {
|
||||
let e = new Experiments.ExperimentEntry();
|
||||
delete cacheData._branch;
|
||||
Assert.ok(e.initFromCacheData(cacheData));
|
||||
Assert.ok(e.enabled);
|
||||
});
|
||||
|
||||
add_task(function* test_missing() {
|
||||
let e = new Experiments.ExperimentEntry();
|
||||
delete cacheData._name;
|
||||
Assert.ok(!e.initFromCacheData(cacheData));
|
||||
});
|
||||
|
||||
function run_test() {
|
||||
run_next_test();
|
||||
}
|
@ -21,3 +21,4 @@ generated-files =
|
||||
[test_telemetry.js]
|
||||
[test_healthreport.js]
|
||||
[test_previous_provider.js]
|
||||
[test_upgrade.js]
|
||||
|
Loading…
Reference in New Issue
Block a user