summaryrefslogtreecommitdiffstats
path: root/dom/indexedDB/test/unit/test_open_and_databases.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/indexedDB/test/unit/test_open_and_databases.js')
-rw-r--r--dom/indexedDB/test/unit/test_open_and_databases.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/dom/indexedDB/test/unit/test_open_and_databases.js b/dom/indexedDB/test/unit/test_open_and_databases.js
new file mode 100644
index 0000000000..b13cba067a
--- /dev/null
+++ b/dom/indexedDB/test/unit/test_open_and_databases.js
@@ -0,0 +1,76 @@
+/**
+ * Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+/* exported testSteps */
+async function testSteps() {
+ const openInfos = [
+ { name: "foo-a", version: 1 },
+ { name: "foo-b", version: 1 },
+ ];
+
+ info("Creating databases");
+
+ for (let index = 0; index < openInfos.length; index++) {
+ const openInfo = openInfos[index];
+
+ const request = indexedDB.open(openInfo.name, openInfo.version);
+
+ await expectingUpgrade(request);
+
+ const event = await expectingSuccess(request);
+
+ const database = event.target.result;
+
+ database.close();
+ }
+
+ info("Getting databases");
+
+ const databasesPromise = indexedDB.databases();
+
+ info("Opening databases");
+
+ const openPromises = [];
+
+ for (let index = 0; index < openInfos.length; index++) {
+ const openInfo = openInfos[index];
+
+ const request = indexedDB.open(openInfo.name, openInfo.version);
+
+ const promise = expectingSuccess(request);
+
+ openPromises.push(promise);
+ }
+
+ info("Waiting for databases operation to complete");
+
+ const databaseInfos = await databasesPromise;
+
+ info("Verifying databases");
+
+ is(
+ databaseInfos.length,
+ openInfos.length,
+ "The result of databases() should contain one result per database"
+ );
+
+ for (let index = 0; index < openInfos.length; index++) {
+ const openInfo = openInfos[index];
+
+ ok(
+ databaseInfos.some(function (element) {
+ return (
+ element.name === openInfo.name && element.version === openInfo.version
+ );
+ }),
+ "The result of databases() should be a sequence of the correct names " +
+ "and versions of all databases for the origin"
+ );
+ }
+
+ info("Waiting for open operations to complete");
+
+ await Promise.all(openPromises);
+}