summaryrefslogtreecommitdiffstats
path: root/dom/indexedDB/test/unit/test_unexpectedDirectory.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/indexedDB/test/unit/test_unexpectedDirectory.js')
-rw-r--r--dom/indexedDB/test/unit/test_unexpectedDirectory.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/dom/indexedDB/test/unit/test_unexpectedDirectory.js b/dom/indexedDB/test/unit/test_unexpectedDirectory.js
new file mode 100644
index 0000000000..5af56da1c8
--- /dev/null
+++ b/dom/indexedDB/test/unit/test_unexpectedDirectory.js
@@ -0,0 +1,63 @@
+/**
+ * Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+function getTestingFiles() {
+ const filenameBase = "unexpectedDirectory";
+ let baseDir = getRelativeFile("storage/permanent/chrome/idb");
+
+ let unexpectedDirWithoutSuffix = baseDir.clone();
+ unexpectedDirWithoutSuffix.append(filenameBase);
+
+ let unexpectedDir = baseDir.clone();
+ unexpectedDir.append(filenameBase + ".files");
+
+ return { unexpectedDirWithoutSuffix, unexpectedDir };
+}
+
+function createTestingEnvironment() {
+ let testingFiles = getTestingFiles();
+ testingFiles.unexpectedDir.create(
+ Ci.nsIFile.DIRECTORY_TYPE,
+ parseInt("0755", 8)
+ );
+
+ testingFiles.unexpectedDirWithoutSuffix.create(
+ Ci.nsIFile.DIRECTORY_TYPE,
+ parseInt("0755", 8)
+ );
+}
+
+/**
+ * This test verifies unexpected directories won't block idb's initialization.
+ */
+
+/* exported testSteps */
+async function testSteps() {
+ info("Verifying open shouldn't be blocked by unexpected files");
+
+ createTestingEnvironment();
+
+ let request = indexedDB.open(
+ this.window ? window.location.pathname : "Splendid Test",
+ 1
+ );
+ await expectingUpgrade(request);
+
+ // Waiting for a success event for indexedDB.open()
+ let event = await expectingSuccess(request);
+
+ let testingFiles = getTestingFiles();
+ ok(
+ !testingFiles.unexpectedDir.exists(),
+ "The unexpected directory doesn't exist"
+ );
+ ok(
+ !testingFiles.unexpectedDirWithoutSuffix.exists(),
+ "The unexpected directory without the suffix doesn't exist"
+ );
+
+ let db = event.target.result;
+ db.close();
+}