test_upgradeFromIndexedDBDirectory.js (2948B)
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 8 * MaybeUpgradeFromIndexedDBDirectoryToPersistentStorageDirectory method. 9 */ 10 11 function* testSteps() { 12 const origins = [ 13 { 14 oldPath: "indexedDB/http+++www.mozilla.org", 15 newPath: "storage/default/http+++www.mozilla.org", 16 url: "http://www.mozilla.org", 17 persistence: "default", 18 }, 19 20 { 21 oldPath: "indexedDB/1007+f+app+++system.gaiamobile.org", 22 }, 23 24 { 25 oldPath: "indexedDB/1007+t+https+++developer.cdn.mozilla.net", 26 }, 27 ]; 28 29 const packages = [ 30 // Storage used prior FF 26 (indexedDB/ directory). 31 "indexedDBDirectory_profile", 32 "../indexedDBDirectory_shared", 33 ]; 34 35 info("Clearing"); 36 37 clear(continueToNextStepSync); 38 yield undefined; 39 40 info("Verifying storage"); 41 42 verifyStorage(packages, "beforeInstall"); 43 44 info("Installing package"); 45 46 installPackages(packages); 47 48 info("Verifying storage"); 49 50 verifyStorage(packages, "afterInstall"); 51 52 for (let origin of origins) { 53 let originDir = getRelativeFile(origin.oldPath); 54 let exists = originDir.exists(); 55 ok(exists, "Origin directory does exist"); 56 57 if (origin.newPath) { 58 originDir = getRelativeFile(origin.newPath); 59 exists = originDir.exists(); 60 ok(!exists, "Origin directory doesn't exist"); 61 } 62 } 63 64 info("Initializing"); 65 66 let request = init(continueToNextStepSync); 67 yield undefined; 68 69 Assert.equal(request.resultCode, NS_OK, "Initialization succeeded"); 70 71 info("Verifying storage"); 72 73 verifyStorage(packages, "afterInit"); 74 75 // TODO: Remove this block once temporary storage initialization is able to 76 // ignore unknown directories. 77 getRelativeFile("storage/default/invalid+++example.com").remove(false); 78 79 info("Checking origin directories"); 80 81 for (let origin of origins) { 82 let originDir = getRelativeFile(origin.oldPath); 83 let exists = originDir.exists(); 84 ok(!exists, "Origin directory doesn't exist"); 85 86 if (origin.newPath) { 87 originDir = getRelativeFile(origin.newPath); 88 exists = originDir.exists(); 89 ok(exists, "Origin directory does exist"); 90 } 91 } 92 93 info("Initializing temporary storage"); 94 95 request = initTemporaryStorage(continueToNextStepSync); 96 yield undefined; 97 98 Assert.equal(request.resultCode, NS_OK, "Initialization succeeded"); 99 100 info("Initializing origins"); 101 102 for (const origin of origins) { 103 if (origin.newPath) { 104 info("Initializing origin"); 105 106 let principal = getPrincipal(origin.url); 107 request = initTemporaryOrigin( 108 origin.persistence, 109 principal, 110 /* createIfNonExistent */ true, 111 continueToNextStepSync 112 ); 113 yield undefined; 114 115 Assert.equal(request.resultCode, NS_OK, "Initialization succeeded"); 116 117 ok(!request.result, "Origin directory wasn't created"); 118 } 119 } 120 121 finishTest(); 122 }