summaryrefslogtreecommitdiffstats
path: root/devtools/client/storage/test/browser_storage_file_url.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /devtools/client/storage/test/browser_storage_file_url.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/storage/test/browser_storage_file_url.js')
-rw-r--r--devtools/client/storage/test/browser_storage_file_url.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/devtools/client/storage/test/browser_storage_file_url.js b/devtools/client/storage/test/browser_storage_file_url.js
new file mode 100644
index 0000000000..7e0d3c0283
--- /dev/null
+++ b/devtools/client/storage/test/browser_storage_file_url.js
@@ -0,0 +1,64 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+// Test to verify that various storage types work when using file:// URLs.
+
+"use strict";
+
+add_task(async function () {
+ const TESTPAGE = "storage-file-url.html";
+
+ // We need to load TESTPAGE using a file:// path so we need to get that from
+ // the current test path.
+ const testPath = getResolvedURI(gTestPath);
+ const dir = getChromeDir(testPath);
+
+ // Then append TESTPAGE to the test path.
+ dir.append(TESTPAGE);
+
+ // Then generate a FileURI to ensure the path is valid.
+ const uriString = Services.io.newFileURI(dir).spec;
+
+ // Now we have a valid file:// URL pointing to TESTPAGE.
+ await openTabAndSetupStorage(uriString);
+
+ // uriString points to the test inside objdir e.g.
+ // `/path/to/fx/objDir/_tests/testing/mochitest/browser/devtools/client/
+ // storage/test/storage-file-url.html`.
+ //
+ // When opened in the browser this may resolve to a different path e.g.
+ // `path/to/fx/repo/devtools/client/storage/test/storage-file-url.html`.
+ //
+ // The easiest way to get the actual path is to request it from the content
+ // process.
+ const browser = gBrowser.selectedBrowser;
+ const actualPath = await SpecialPowers.spawn(browser, [], () => {
+ return content.document.location.href;
+ });
+
+ const cookiePath = actualPath
+ .substr(0, actualPath.lastIndexOf("/"))
+ .replace(/file:\/\//g, "");
+ await checkState([
+ [
+ ["cookies", actualPath],
+ [
+ getCookieId("test1", "", cookiePath),
+ getCookieId("test2", "", cookiePath),
+ ],
+ ],
+ [
+ ["indexedDB", actualPath, "MyDatabase (default)", "MyObjectStore"],
+ [12345, 54321, 67890, 98765],
+ ],
+ [
+ ["localStorage", actualPath],
+ ["test3", "test4"],
+ ],
+ [
+ ["sessionStorage", actualPath],
+ ["test5", "test6"],
+ ],
+ ]);
+});