tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_service_wipeClient.js (2170B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 const { Service } = ChromeUtils.importESModule(
      5  "resource://services-sync/service.sys.mjs"
      6 );
      7 
      8 function CanDecryptEngine() {
      9  SyncEngine.call(this, "CanDecrypt", Service);
     10 }
     11 CanDecryptEngine.prototype = {
     12  // Override these methods with mocks for the test
     13  async canDecrypt() {
     14    return true;
     15  },
     16 
     17  wasWiped: false,
     18  async wipeClient() {
     19    this.wasWiped = true;
     20  },
     21 };
     22 Object.setPrototypeOf(CanDecryptEngine.prototype, SyncEngine.prototype);
     23 
     24 function CannotDecryptEngine() {
     25  SyncEngine.call(this, "CannotDecrypt", Service);
     26 }
     27 CannotDecryptEngine.prototype = {
     28  // Override these methods with mocks for the test
     29  async canDecrypt() {
     30    return false;
     31  },
     32 
     33  wasWiped: false,
     34  async wipeClient() {
     35    this.wasWiped = true;
     36  },
     37 };
     38 Object.setPrototypeOf(CannotDecryptEngine.prototype, SyncEngine.prototype);
     39 
     40 let canDecryptEngine;
     41 let cannotDecryptEngine;
     42 
     43 add_task(async function setup() {
     44  await Service.engineManager.clear();
     45 
     46  await Service.engineManager.register(CanDecryptEngine);
     47  await Service.engineManager.register(CannotDecryptEngine);
     48  canDecryptEngine = Service.engineManager.get("candecrypt");
     49  cannotDecryptEngine = Service.engineManager.get("cannotdecrypt");
     50 });
     51 
     52 add_task(async function test_withEngineList() {
     53  try {
     54    _("Ensure initial scenario.");
     55    Assert.ok(!canDecryptEngine.wasWiped);
     56    Assert.ok(!cannotDecryptEngine.wasWiped);
     57 
     58    _("Wipe local engine data.");
     59    await Service.wipeClient(["candecrypt", "cannotdecrypt"]);
     60 
     61    _("Ensure only the engine that can decrypt was wiped.");
     62    Assert.ok(canDecryptEngine.wasWiped);
     63    Assert.ok(!cannotDecryptEngine.wasWiped);
     64  } finally {
     65    canDecryptEngine.wasWiped = false;
     66    cannotDecryptEngine.wasWiped = false;
     67    await Service.startOver();
     68  }
     69 });
     70 
     71 add_task(async function test_startOver_clears_keys() {
     72  syncTestLogging();
     73  await generateNewKeys(Service.collectionKeys);
     74  Assert.ok(!!Service.collectionKeys.keyForCollection());
     75  await Service.startOver();
     76  syncTestLogging();
     77  Assert.ok(!Service.collectionKeys.keyForCollection());
     78 });