diff options
Diffstat (limited to 'services/sync/tests/unit/test_healthreport_migration.js')
-rw-r--r-- | services/sync/tests/unit/test_healthreport_migration.js | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/services/sync/tests/unit/test_healthreport_migration.js b/services/sync/tests/unit/test_healthreport_migration.js deleted file mode 100644 index 23f756748..000000000 --- a/services/sync/tests/unit/test_healthreport_migration.js +++ /dev/null @@ -1,155 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -"use strict"; - -Cu.import("resource://gre/modules/Metrics.jsm", this); -Cu.import("resource://gre/modules/Preferences.jsm", this); -Cu.import("resource://gre/modules/Promise.jsm", this); -Cu.import("resource://services-sync/healthreport.jsm", this); -Cu.import("resource://services-sync/FxaMigrator.jsm", this); -Cu.import("resource://testing-common/services/common/logging.js", this); -Cu.import("resource://testing-common/services/healthreport/utils.jsm", this); - - -function run_test() { - initTestLogging(); - - run_next_test(); -} - -add_task(function* test_no_data() { - let storage = yield Metrics.Storage("collect"); - let provider = new SyncProvider(); - yield provider.init(storage); - - try { - // Initially nothing should be configured. - let now = new Date(); - yield provider.collectDailyData(); - - let m = provider.getMeasurement("migration", 1); - let values = yield m.getValues(); - Assert.equal(values.days.size, 0); - Assert.ok(!values.days.hasDay(now)); - } finally { - yield provider.shutdown(); - yield storage.close(); - } -}); - -function checkCorrectStateRecorded(provider, state) { - // Wait for storage to complete. - yield m.storage.enqueueOperation(() => { - return Promise.resolve(); - }); - - let m = provider.getMeasurement("migration", 1); - let values = yield m.getValues(); - Assert.equal(values.days.size, 1); - Assert.ok(values.days.hasDay(now)); - let day = values.days.getDay(now); - - Assert.ok(day.has("state")); - Assert.equal(day.get("state"), state); -} - -add_task(function* test_state() { - let storage = yield Metrics.Storage("collect"); - let provider = new SyncProvider(); - yield provider.init(storage); - - try { - // Initially nothing should be configured. - let now = new Date(); - - // We record both a "user" and "internal" state in the same field. - // So simulate a "user" state first. - Services.obs.notifyObservers(null, "fxa-migration:state-changed", - fxaMigrator.STATE_USER_FXA_VERIFIED); - checkCorrectStateRecorded(provider, fxaMigrator.STATE_USER_FXA_VERIFIED); - - // And an internal state. - Services.obs.notifyObservers(null, "fxa-migration:internal-state-changed", - fxaMigrator.STATE_INTERNAL_WAITING_SYNC_COMPLETE); - checkCorrectStateRecorded(provider, fxaMigrator.STATE_INTERNAL_WAITING_SYNC_COMPLETE); - } finally { - yield provider.shutdown(); - yield storage.close(); - } -}); - -add_task(function* test_flags() { - let storage = yield Metrics.Storage("collect"); - let provider = new SyncProvider(); - yield provider.init(storage); - - try { - // Initially nothing should be configured. - let now = new Date(); - - let m = provider.getMeasurement("migration", 1); - - let record = function*(what) { - Services.obs.notifyObservers(null, "fxa-migration:internal-telemetry", what); - // Wait for storage to complete. - yield m.storage.enqueueOperation(Promise.resolve); - let values = yield m.getValues(); - Assert.equal(values.days.size, 1); - return values.days.getDay(now); - } - - let values = yield m.getValues(); - Assert.equal(values.days.size, 1); - let day = values.days.getDay(now); - Assert.ok(!day.has(fxaMigrator.TELEMETRY_ACCEPTED)); - Assert.ok(!day.has(fxaMigrator.TELEMETRY_DECLINED)); - Assert.ok(!day.has(fxaMigrator.TELEMETRY_UNLINKED)); - - // let's send an unknown value to ensure our error mitigation works. - day = yield record("unknown"); - Assert.ok(!day.has(fxaMigrator.TELEMETRY_ACCEPTED)); - Assert.ok(!day.has(fxaMigrator.TELEMETRY_DECLINED)); - Assert.ok(!day.has(fxaMigrator.TELEMETRY_UNLINKED)); - - // record an fxaMigrator.TELEMETRY_ACCEPTED state. - day = yield record(fxaMigrator.TELEMETRY_ACCEPTED); - Assert.ok(day.has(fxaMigrator.TELEMETRY_ACCEPTED)); - Assert.ok(!day.has(fxaMigrator.TELEMETRY_DECLINED)); - Assert.ok(!day.has(fxaMigrator.TELEMETRY_UNLINKED)); - Assert.equal(day.get(fxaMigrator.TELEMETRY_ACCEPTED), 1); - - // and again - it should get 2. - day = yield record(fxaMigrator.TELEMETRY_ACCEPTED); - Assert.equal(day.get(fxaMigrator.TELEMETRY_ACCEPTED), 2); - - // record fxaMigrator.TELEMETRY_DECLINED - also a counter. - day = yield record(fxaMigrator.TELEMETRY_DECLINED); - Assert.ok(day.has(fxaMigrator.TELEMETRY_ACCEPTED)); - Assert.ok(day.has(fxaMigrator.TELEMETRY_DECLINED)); - Assert.ok(!day.has(fxaMigrator.TELEMETRY_UNLINKED)); - Assert.equal(day.get(fxaMigrator.TELEMETRY_ACCEPTED), 2); - Assert.equal(day.get(fxaMigrator.TELEMETRY_DECLINED), 1); - - day = yield record(fxaMigrator.TELEMETRY_DECLINED); - Assert.ok(day.has(fxaMigrator.TELEMETRY_ACCEPTED)); - Assert.ok(day.has(fxaMigrator.TELEMETRY_DECLINED)); - Assert.ok(!day.has(fxaMigrator.TELEMETRY_UNLINKED)); - Assert.equal(day.get(fxaMigrator.TELEMETRY_ACCEPTED), 2); - Assert.equal(day.get(fxaMigrator.TELEMETRY_DECLINED), 2); - - // and fxaMigrator.TELEMETRY_UNLINKED - this is conceptually a "daily bool". - // (ie, it's DAILY_LAST_NUMERIC_FIELD and only ever has |1| written to it) - day = yield record(fxaMigrator.TELEMETRY_UNLINKED); - Assert.ok(day.has(fxaMigrator.TELEMETRY_ACCEPTED)); - Assert.ok(day.has(fxaMigrator.TELEMETRY_DECLINED)); - Assert.ok(day.has(fxaMigrator.TELEMETRY_UNLINKED)); - Assert.equal(day.get(fxaMigrator.TELEMETRY_UNLINKED), 1); - // and doing it again still leaves us with |1| - day = yield record(fxaMigrator.TELEMETRY_UNLINKED); - Assert.equal(day.get(fxaMigrator.TELEMETRY_UNLINKED), 1); - } finally { - yield provider.shutdown(); - yield storage.close(); - } -}); |