services/sync/tests/unit/test_engine_abort.js

Wed, 31 Dec 2014 07:22:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:22:50 +0100
branch
TOR_BUG_3246
changeset 4
fc2d59ddac77
permissions
-rw-r--r--

Correct previous dual key logic pending first delivery installment.

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 Cu.import("resource://services-sync/engines.js");
     5 Cu.import("resource://services-sync/record.js");
     6 Cu.import("resource://services-sync/service.js");
     7 Cu.import("resource://services-sync/util.js");
     8 Cu.import("resource://testing-common/services/sync/rotaryengine.js");
     9 Cu.import("resource://testing-common/services/sync/utils.js");
    11 add_test(function test_processIncoming_abort() {
    12   _("An abort exception, raised in applyIncoming, will abort _processIncoming.");
    13   let engine = new RotaryEngine(Service);
    15   let collection = new ServerCollection();
    16   let id = Utils.makeGUID();
    17   let payload = encryptPayload({id: id, denomination: "Record No. " + id});
    18   collection.insert(id, payload);
    20   let server = sync_httpd_setup({
    21       "/1.1/foo/storage/rotary": collection.handler()
    22   });
    24   new SyncTestingInfrastructure(server);
    25   generateNewKeys(Service.collectionKeys);
    27   _("Create some server data.");
    28   let meta_global = Service.recordManager.set(engine.metaURL,
    29                                               new WBORecord(engine.metaURL));
    30   meta_global.payload.engines = {rotary: {version: engine.version,
    31                                           syncID: engine.syncID}};
    32   _("Fake applyIncoming to abort.");
    33   engine._store.applyIncoming = function (record) {
    34     let ex = {code: Engine.prototype.eEngineAbortApplyIncoming,
    35               cause: "Nooo"};
    36     _("Throwing: " + JSON.stringify(ex));
    37     throw ex;
    38   };
    40   _("Trying _processIncoming. It will throw after aborting.");
    41   let err;
    42   try {
    43     engine._syncStartup();
    44     engine._processIncoming();
    45   } catch (ex) {
    46     err = ex;
    47   }
    49   do_check_eq(err, "Nooo");
    50   err = undefined;
    52   _("Trying engine.sync(). It will abort without error.");
    53   try {
    54     // This will quietly fail.
    55     engine.sync();
    56   } catch (ex) {
    57     err = ex;
    58   }
    60   do_check_eq(err, undefined);
    62   server.stop(run_next_test);
    63   Svc.Prefs.resetBranch("");
    64   Service.recordManager.clearCache();
    65 });
    67 function run_test() {
    68   run_next_test();
    69 }

mercurial