Bug 1448118 - Test for the storage inspector when running inside the browser toolbox r?nchevobbe
MozReview-Commit-ID: DrNrHwYVo8U
--- a/devtools/server/tests/browser/browser.ini
+++ b/devtools/server/tests/browser/browser.ini
@@ -88,16 +88,17 @@ skip-if = true # Needs to be updated for
skip-if = true # Needs to be updated for async actor destruction
[browser_perf-realtime-markers.js]
[browser_perf-recording-actor-01.js]
skip-if = e10s # Bug 1183605 - devtools/server/tests/browser/ tests are still disabled in E10S
[browser_perf-recording-actor-02.js]
skip-if = e10s # Bug 1183605 - devtools/server/tests/browser/ tests are still disabled in E10S
[browser_perf-samples-01.js]
[browser_perf-samples-02.js]
+[browser_storage_browser_toolbox_indexeddb.js]
[browser_storage_cookies-duplicate-names.js]
[browser_storage_dynamic_windows.js]
[browser_storage_listings.js]
[browser_storage_updates.js]
[browser_stylesheets_getTextEmpty.js]
[browser_stylesheets_nested-iframes.js]
[browser_timeline.js]
[browser_timeline_actors.js]
new file mode 100644
--- /dev/null
+++ b/devtools/server/tests/browser/browser_storage_browser_toolbox_indexeddb.js
@@ -0,0 +1,55 @@
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const { StorageFront } = require("devtools/shared/fronts/storage");
+Services.scriptloader.loadSubScript(
+ "chrome://mochitests/content/browser/devtools/server/tests/browser/storage-helpers.js",
+ this);
+
+add_task(async function() {
+ await pushPref("devtools.chrome.enabled", true);
+ await pushPref("devtools.debugger.remote-enabled", true);
+ await openTabAndSetupStorage(MAIN_DOMAIN + "storage-updates.html");
+ await createIndexedDB();
+
+ initDebuggerServer();
+ let client = new DebuggerClient(DebuggerServer.connectPipe());
+ let form = await connectDebuggerClient(client);
+ let front = StorageFront(client, form);
+
+ await testInternalDBs(front);
+ await clearStorage();
+
+ // Forcing GC/CC to get rid of docshells and windows created by this test.
+ forceCollections();
+ await client.close();
+ forceCollections();
+ DebuggerServer.destroy();
+ forceCollections();
+});
+
+async function createIndexedDB() {
+ let request = indexedDB.open("MyDatabase", 1);
+
+ request.onupgradeneeded = function() {
+ let db = request.result;
+ let store = db.createObjectStore("MyObjectStore", {keyPath: "id"});
+ store.createIndex("NameIndex", ["name.last", "name.first"]);
+ };
+
+ await undefined;
+}
+
+async function testInternalDBs(front) {
+ let data = await front.listStores();
+ let hosts = data.indexedDB.hosts;
+
+ ok(hosts.chrome, `indexedDB hosts contains "chrome"`);
+
+ let path = `["MyDatabase (persistent)","MyObjectStore"]`;
+ let foundDB = hosts.chrome.includes(path);
+ ok(foundDB, `Host "chrome" includes ${path}`);
+}