michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: "use strict"; michael@0: Cu.import("resource:///modules/experiments/Experiments.jsm"); michael@0: michael@0: const SEC_IN_ONE_DAY = 24 * 60 * 60; michael@0: const MS_IN_ONE_DAY = SEC_IN_ONE_DAY * 1000; michael@0: michael@0: let cacheData = { michael@0: _enabled: true, michael@0: _manifestData: { michael@0: id: "foobartestid", michael@0: xpiURL: "http://example.com/foo.xpi", michael@0: xpiHash: "sha256:abcde", michael@0: startTime: 0, michael@0: endTime: 2000000000, michael@0: maxActiveSeconds: 40000000, michael@0: appName: "TestApp", michael@0: channel: "test-foo", michael@0: }, michael@0: _needsUpdate: false, michael@0: _randomValue: 0.5, michael@0: _failedStart: false, michael@0: _name: "Foo", michael@0: _description: "Foobar", michael@0: _homepageURL: "", michael@0: _addonId: "foo@test", michael@0: _startDate: 0, michael@0: _endDate: 2000000000, michael@0: _branch: null michael@0: }; michael@0: michael@0: add_task(function* test_valid() { michael@0: let e = new Experiments.ExperimentEntry(); michael@0: Assert.ok(e.initFromCacheData(cacheData)); michael@0: Assert.ok(e.enabled); michael@0: }); michael@0: michael@0: add_task(function* test_upgrade() { michael@0: let e = new Experiments.ExperimentEntry(); michael@0: delete cacheData._branch; michael@0: Assert.ok(e.initFromCacheData(cacheData)); michael@0: Assert.ok(e.enabled); michael@0: }); michael@0: michael@0: add_task(function* test_missing() { michael@0: let e = new Experiments.ExperimentEntry(); michael@0: delete cacheData._name; michael@0: Assert.ok(!e.initFromCacheData(cacheData)); michael@0: }); michael@0: michael@0: function run_test() { michael@0: run_next_test(); michael@0: }