test_clearStoragesForClient.js (1863B)
1 /** 2 * Any copyright is dedicated to the Public Domain. 3 * http://creativecommons.org/publicdomain/zero/1.0/ 4 */ 5 6 /** 7 * This test is mainly to verify clearing by client type. 8 */ 9 10 async function testSteps() { 11 const packages = [ 12 "clearStoragesForClient_profile", 13 "defaultStorageDirectory_shared", 14 ]; 15 16 const testData = [ 17 { 18 origin: "http://example.com", 19 client: "sdb", 20 persistence: null, 21 key: "afterClearByClient", 22 }, 23 { 24 origin: "http://example.com", 25 client: "sdb", 26 persistence: "default", 27 key: "afterClearByClient_default", 28 }, 29 { 30 origin: "http://example.com", 31 client: "sdb", 32 persistence: "persistent", 33 key: "afterClearByClient_persistent", 34 }, 35 { 36 origin: "http://example.com", 37 client: "sdb", 38 persistence: "temporary", 39 key: "afterClearByClient_temporary", 40 }, 41 ]; 42 43 for (const item of testData) { 44 info("Clearing"); 45 46 let request = clear(); 47 await requestFinished(request); 48 49 info("Verifying storage"); 50 51 verifyStorage(packages, "beforeInstall"); 52 53 info("Installing package"); 54 55 installPackages(packages); 56 57 info("Verifying storage"); 58 59 verifyStorage(packages, "afterInstall"); 60 61 // TODO: Remove this block once origin clearing is able to ignore unknown 62 // directories. 63 getRelativeFile("storage/default/invalid+++example.com").remove(false); 64 getRelativeFile("storage/permanent/invalid+++example.com").remove(false); 65 getRelativeFile("storage/temporary/invalid+++example.com").remove(false); 66 67 info("Clearing by client type"); 68 69 request = clearClient( 70 getPrincipal(item.origin), 71 item.client, 72 item.persistence 73 ); 74 await requestFinished(request); 75 76 info("Verifying storage"); 77 78 verifyStorage(packages, item.key, "afterClearByClient"); 79 } 80 }