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:
Tom Tung 2018-09-17 11:21:41 +02:00
Родитель 8e0aa26fa8
Коммит 7aaeb17302
2 изменённых файлов: 74 добавлений и 0 удалений

Просмотреть файл

@ -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]