test_clearStoragesForOriginPrefix.js (1791B)
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 origin prefix. 8 */ 9 10 async function testSteps() { 11 const packages = [ 12 "clearStoragesForOriginPrefix_profile", 13 "defaultStorageDirectory_shared", 14 ]; 15 16 const testData = [ 17 { 18 origin: "http://example.com", 19 persistence: null, 20 key: "afterClearByOriginPrefix", 21 }, 22 { 23 origin: "http://example.com", 24 persistence: "default", 25 key: "afterClearByOriginPrefix_default", 26 }, 27 { 28 origin: "http://example.com", 29 persistence: "persistent", 30 key: "afterClearByOriginPrefix_persistent", 31 }, 32 { 33 origin: "http://example.com", 34 persistence: "temporary", 35 key: "afterClearByOriginPrefix_temporary", 36 }, 37 ]; 38 39 for (const item of testData) { 40 info("Clearing"); 41 42 let request = clear(); 43 await requestFinished(request); 44 45 info("Verifying storage"); 46 47 verifyStorage(packages, "beforeInstall"); 48 49 info("Installing package"); 50 51 installPackages(packages); 52 53 info("Verifying storage"); 54 55 verifyStorage(packages, "afterInstall"); 56 57 // TODO: Remove this block once origin clearing is able to ignore unknown 58 // directories. 59 getRelativeFile("storage/default/invalid+++example.com").remove(false); 60 getRelativeFile("storage/permanent/invalid+++example.com").remove(false); 61 getRelativeFile("storage/temporary/invalid+++example.com").remove(false); 62 63 info("Clearing by origin prefix"); 64 65 request = clearOriginsByPrefix(getPrincipal(item.origin), item.persistence); 66 await requestFinished(request); 67 68 info("Verifying storage"); 69 70 verifyStorage(packages, item.key, "afterClearByOriginPrefix"); 71 } 72 }