test_unknownFiles.js (3117B)
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 that init, initTemporaryStorage, 8 * getUsageForPrincipal and clearStoragesForPrincipal are able to ignore 9 * unknown files and directories in the storage/default directory and its 10 * subdirectories. 11 */ 12 async function testSteps() { 13 const principal = getPrincipal("http://example.com"); 14 15 async function testFunctionality(testFunction) { 16 const modes = [ 17 { 18 initializedStorage: false, 19 initializedPersistentStorage: false, 20 initializedTemporaryStorage: false, 21 }, 22 { 23 initializedStorage: true, 24 initializedPersistentStorage: false, 25 initializedTemporaryStorage: false, 26 }, 27 { 28 initializedStorage: true, 29 initializedPersistentStorage: false, 30 initializedTemporaryStorage: true, 31 }, 32 ]; 33 34 for (const mode of modes) { 35 info("Clearing"); 36 37 let request = clear(); 38 await requestFinished(request); 39 40 info("Installing package"); 41 42 // The profile contains unknown files and unknown directories placed 43 // across the repositories, origin directories and client directories. 44 // The file make_unknownFiles.js was run locally, specifically it was 45 // temporarily enabled in xpcshell.toml and then executed: 46 // mach test --interactive dom/quota/test/xpcshell/make_unknownFiles.js 47 installPackage("unknownFiles_profile"); 48 49 if (mode.initializedStorage) { 50 info("Initializing storage"); 51 52 request = init(); 53 await requestFinished(request); 54 } 55 56 if (mode.initializedTemporaryStorage) { 57 info("Initializing temporary storage"); 58 59 request = initTemporaryStorage(); 60 await requestFinished(request); 61 } 62 63 info("Verifying initialization status"); 64 65 await verifyInitializationStatus( 66 mode.initializedStorage, 67 mode.initializedPersistentStorage, 68 mode.initializedTemporaryStorage 69 ); 70 71 await testFunction( 72 mode.initializedStorage, 73 mode.initializedTemporaryStorage 74 ); 75 76 info("Clearing"); 77 78 request = clear(); 79 await requestFinished(request); 80 } 81 } 82 83 // init and initTemporaryStorage functionality is tested in the 84 // testFunctionality function as part of the multi mode testing 85 86 info("Testing getUsageForPrincipal functionality"); 87 88 await testFunctionality(async function () { 89 info("Getting origin usage"); 90 91 request = getOriginUsage(principal); 92 await requestFinished(request); 93 94 ok( 95 request.result instanceof Ci.nsIQuotaOriginUsageResult, 96 "The result is nsIQuotaOriginUsageResult instance" 97 ); 98 is(request.result.usage, 115025, "Correct total usage"); 99 is(request.result.fileUsage, 200, "Correct file usage"); 100 }); 101 102 info("Testing clearStoragesForPrincipal functionality"); 103 104 await testFunctionality(async function () { 105 info("Clearing origin"); 106 107 request = clearOrigin(principal, "default"); 108 await requestFinished(request); 109 }); 110 }