зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1389378 - A test for verifying persisted origins bounded by the global limit; r=janv
Bug 1372116 reported that PersistOp() didn't create an originInfo object for the persisting origin if the temporary storage had been initialized. The test verifies that no matter the temporary storage was initialized or not the PersistOp should hanlde the originInfo object properly so that the persisting origin will be bounded by the global limit. --HG-- extra : rebase_source : b2bd9553094f03a89cc8e9e733fe6909ade1f430
This commit is contained in:
Родитель
8e0aa26fa8
Коммит
7aaeb17302
|
@ -0,0 +1,73 @@
|
|||
/**
|
||||
* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
|
||||
/**
|
||||
* This test is mainly to verify that persisted origins are always bounded by
|
||||
* the global limit.
|
||||
*/
|
||||
|
||||
async function testSteps()
|
||||
{
|
||||
const globalLimitKB = 1;
|
||||
|
||||
const principal = getPrincipal("https://persisted.example.com");
|
||||
|
||||
info("Setting limits");
|
||||
|
||||
setGlobalLimit(globalLimitKB);
|
||||
|
||||
let request = clear();
|
||||
await requestFinished(request);
|
||||
|
||||
for (let initializeStorageBeforePersist of [false, true]) {
|
||||
if (initializeStorageBeforePersist) {
|
||||
info("Initializing the temporary storage");
|
||||
|
||||
request = initTemporaryStorage();
|
||||
await requestFinished(request);
|
||||
}
|
||||
|
||||
info("Persisting an origin");
|
||||
|
||||
request = persist(principal);
|
||||
await requestFinished(request);
|
||||
|
||||
info("Verifying the persisted origin is bounded by global limit");
|
||||
|
||||
let database = getSimpleDatabase(principal);
|
||||
|
||||
info("Opening a database for the persisted origin");
|
||||
|
||||
request = database.open("data");
|
||||
await requestFinished(request);
|
||||
|
||||
try {
|
||||
info("Writing over the limit shouldn't succeed");
|
||||
|
||||
request = database.write(getBuffer(globalLimitKB * 1024 + 1));
|
||||
await requestFinished(request);
|
||||
|
||||
ok(false, "Should have thrown");
|
||||
} catch (ex) {
|
||||
ok(true, "Should have thrown");
|
||||
ok(ex === NS_ERROR_FILE_NO_DEVICE_SPACE, "Threw right code");
|
||||
}
|
||||
|
||||
info("Closing the database and clearing");
|
||||
|
||||
request = database.close();
|
||||
await requestFinished(request);
|
||||
|
||||
request = clear();
|
||||
await requestFinished(request);
|
||||
}
|
||||
|
||||
info("Resetting limits");
|
||||
|
||||
resetGlobalLimit();
|
||||
|
||||
request = reset();
|
||||
await requestFinished(request);
|
||||
}
|
|
@ -31,6 +31,7 @@ support-files =
|
|||
[test_originAttributesUpgrade.js]
|
||||
[test_persist.js]
|
||||
[test_persist_eviction.js]
|
||||
[test_persist_globalLimit.js]
|
||||
[test_persist_groupLimit.js]
|
||||
[test_removeAppsUpgrade.js]
|
||||
[test_removeLocalStorage.js]
|
||||
|
|
Загрузка…
Ссылка в новой задаче