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 });