108 lines
2.4 KiB
JavaScript
108 lines
2.4 KiB
JavaScript
/**
|
|
* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
async function testSteps() {
|
|
const principal = getPrincipal("http://localhost");
|
|
|
|
const resultBeforeInstall = {
|
|
databaseUsage: 0,
|
|
fileUsage: 0,
|
|
usage: 0,
|
|
};
|
|
|
|
const resultAfterInstall = {
|
|
databaseUsage: 147456,
|
|
fileUsage: 0,
|
|
usage: 147456,
|
|
};
|
|
|
|
function verifyResult(result, expectedResult) {
|
|
ok(
|
|
result instanceof Ci.nsIQuotaOriginUsageResult,
|
|
"The result is nsIQuotaOriginUsageResult instance"
|
|
);
|
|
|
|
Assert.strictEqual(
|
|
result.databaseUsage,
|
|
expectedResult.databaseUsage,
|
|
"Database usage equals"
|
|
);
|
|
Assert.strictEqual(
|
|
result.fileUsage,
|
|
expectedResult.fileUsage,
|
|
"File usage equals"
|
|
);
|
|
Assert.strictEqual(
|
|
result.usage,
|
|
expectedResult.usage,
|
|
"Total usage equals"
|
|
);
|
|
}
|
|
|
|
info("Clearing");
|
|
|
|
let request = clear();
|
|
await requestFinished(request);
|
|
|
|
info("Getting origin usage");
|
|
|
|
request = getOriginUsage(principal);
|
|
let result = await requestFinished(request);
|
|
|
|
info("Verifying result");
|
|
|
|
verifyResult(result, resultBeforeInstall);
|
|
|
|
info("Clearing");
|
|
|
|
request = clear();
|
|
await requestFinished(request);
|
|
|
|
info("Installing package");
|
|
|
|
// The profile contains IndexedDB databases placed across the repositories.
|
|
// The file make_getUsageForPrincipal.js was run locally, specifically it was
|
|
// temporarily enabled in xpcshell.ini and then executed:
|
|
// mach test --interactive dom/quota/test/xpcshell/make_getUsageForPrincipal.js
|
|
installPackage("getUsageForPrincipal_profile");
|
|
|
|
info("Getting origin usage");
|
|
|
|
request = getOriginUsage(principal);
|
|
result = await requestFinished(request);
|
|
|
|
info("Verifying result");
|
|
|
|
verifyResult(result, resultAfterInstall);
|
|
|
|
info("Getting origin usage");
|
|
|
|
Services.prefs.setIntPref(
|
|
"dom.quotaManager.originOperations.pauseOnIOThreadMs",
|
|
1000
|
|
);
|
|
|
|
request = getOriginUsage(principal);
|
|
|
|
info("Cancelling request");
|
|
|
|
request.cancel();
|
|
|
|
try {
|
|
result = await requestFinished(request);
|
|
ok(false, "Should have thrown");
|
|
} catch (e) {
|
|
ok(true, "Should have thrown");
|
|
Assert.strictEqual(
|
|
e.resultCode,
|
|
NS_ERROR_FAILURE,
|
|
"Threw right result code"
|
|
);
|
|
}
|
|
|
|
Services.prefs.clearUserPref(
|
|
"dom.quotaManager.originOperations.pauseOnIOThreadMs"
|
|
);
|
|
}
|