Files
tubestation/testing/web-platform/tests/IndexedDB/get-databases.any.js
Ari Chivukula c720f1bfda Bug 1770831 [wpt PR 34171] - [IndexedDB] Cleanup WPT directory, a=testonly
Automatic update from web-platform-tests
[IndexedDB] Cleanup WPT directory

Some common/resource files were in the root directory. This moves them
to the /resources/ directory and fixes up include paths.

Bug: 1218100
Change-Id: If84f7d1670e9416c95eb0fd96de63add4dcacedf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3661378
Auto-Submit: Ari Chivukula <arichiv@chromium.org>
Reviewed-by: Ayu Ishii <ayui@chromium.org>
Commit-Queue: Ayu Ishii <ayui@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1006619}

--

wpt-commits: 96ea2c2b7bf09644db195f0d878074615faef9e4
wpt-pr: 34171
2022-05-25 08:46:09 +00:00

120 lines
4.6 KiB
JavaScript

// META: script=resources/support-promises.js
promise_test(async testCase => {
let result = indexedDB.databases();
assert_true(result instanceof Promise,
"databases() should return a promise.");
result.catch(() => {});
}, "Ensure that databases() returns a promise.");
promise_test(async testCase => {
// Delete any databases that may not have been cleaned up after previous test
// runs.
await deleteAllDatabases(testCase);
const db_name = "TestDatabase";
const db = await createNamedDatabase(testCase, db_name, ()=>{});
const databases_result = await indexedDB.databases();
db.close();
const expected_result = {"name": db_name, "version": 1};
assert_equals(
databases_result.length,
1,
"The result of databases() should contain one result per database.");
assert_true(
databases_result[0].name === expected_result.name
&& databases_result[0].version === expected_result.version,
"The result of databases() should be a sequence of the correct names "
+ "and versions of all databases for the origin.");
}, "Enumerate one database.");
promise_test(async testCase => {
// Delete any databases that may not have been cleaned up after previous test
// runs.
await deleteAllDatabases(testCase);
const db_name1 = "TestDatabase1";
const db_name2 = "TestDatabase2";
const db_name3 = "TestDatabase3";
const db1 = await createNamedDatabase(testCase, db_name1, ()=>{});
const db2 = await createNamedDatabase(testCase, db_name2, ()=>{});
const db3 = await createNamedDatabase(testCase, db_name3, ()=>{});
db1.close();
db2.close();
db3.close();
const version_promise =
await migrateNamedDatabase(testCase, db_name2, 2, () => {});
const databases_result = await indexedDB.databases();
const expected_result = [
{"name": db_name1, "version": 1},
{"name": db_name2, "version": 2},
{"name": db_name3, "version": 1},
];
assert_equals(
databases_result.length,
expected_result.length,
"The result of databases() should contain one result per database.");
for ( let i = 0; i < expected_result.length; i += 1 ) {
result = expected_result[i];
assert_true(
databases_result.some(
e => e.name === result.name && e.version === result.version),
"The result of databases() should be a sequence of the correct names "
+ "and versions of all databases for the origin.");
}
}, "Enumerate multiple databases.");
promise_test(async testCase => {
// Add some databases and close their connections.
const db1 = await createNamedDatabase(testCase, "DB1", () => {});
const db2 = await createNamedDatabase(testCase, "DB2", () => {});
db1.close();
db2.close();
// Delete any databases that may not have been cleaned up after previous test
// runs as well as the two databases made above.
await deleteAllDatabases(testCase);
// Make sure the databases are no longer returned.
const databases_result = await indexedDB.databases();
assert_equals(
databases_result.length,
0,
"The result of databases() should be an empty sequence for the case of "
+ "no databases for the origin.");
}, "Make sure an empty list is returned for the case of no databases.");
promise_test(async testCase => {
// Delete any databases that may not have been cleaned up after previous test
// runs as well as the two databases made above.
await deleteAllDatabases(testCase);
const db1 = await createNamedDatabase(testCase, "DB1", ()=>{});
const db2 = await createNamedDatabase(testCase, "DB2", async () => {
const databases_result1 = await indexedDB.databases();
assert_equals(
databases_result1.length,
1,
"The result of databases() should be only those databases which have "
+ "been created at the time of calling, regardless of versionchange "
+ "transactions currently running.");
});
db1.close();
db2.close();
const databases_result2 = await indexedDB.databases();
assert_equals(
databases_result2.length,
2,
"The result of databases() should include all databases which have "
+ "been created at the time of calling.");
await migrateNamedDatabase(testCase, "DB2", 2, async () => {
const databases_result3 = await indexedDB.databases();
assert_true(
databases_result3[0].version === 1
&& databases_result3[1].version === 1,
"The result of databases() should contain the versions of databases "
+ "at the time of calling, regardless of versionchange transactions "
+ "currently running.");
});
}, "Ensure that databases() doesn't pick up changes that haven't commited.");