Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Unified Diff: third_party/WebKit/LayoutTests/http/tests/inspector/indexeddb/database-refresh-view.html

Issue 2902673003: Added a refresh database button on the IndexedDB view. (Closed)
Patch Set: Changed to use refreshDatabase() function instead of event listener, created database structure in … Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/http/tests/inspector/indexeddb/database-refresh-view.html
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/indexeddb/database-refresh-view.html b/third_party/WebKit/LayoutTests/http/tests/inspector/indexeddb/database-refresh-view.html
new file mode 100644
index 0000000000000000000000000000000000000000..30e915d55687aab659b8e1251a450d144a69ce0f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/inspector/indexeddb/database-refresh-view.html
@@ -0,0 +1,110 @@
+<html>
+<head>
+<script src="../inspector-test.js"></script>
+<script src="../resources-test.js"></script>
+<script src="../console-test.js"></script>
+<script src="indexeddb-test.js"></script>
+<script>
+
+var createDatabase = function(databaseName) {
dgozman 2017/05/26 19:10:46 function createDatabase(
kristipark 2017/05/26 22:42:15 Done.
+ var callback;
+ var promise = new Promise((fulfill) => callback = fulfill);
+ var request = indexedDB.open(databaseName);
+ request.onerror = function(event) {
+ console.error("IndexedDB error: " + event);
+ }
+ request.onsuccess = function(event) {
+ request.result.close();
+ callback();
+ }
+ return promise;
+}
+
+var createObjectStore = function(databaseName, objectStoreName, indexName) {
dgozman 2017/05/26 19:10:46 function createObjectStore(
kristipark 2017/05/26 22:42:16 Done.
+ var callback;
+ var promise = new Promise((fulfill) => callback = fulfill);
+ var request = indexedDB.open(databaseName);
+ request.onerror = function(event) {
+ console.error("IndexedDB error: " + event);
+ }
+ request.onsuccess = function(event) {
+ var db = request.result;
+ var version = db.version;
+ db.close();
+
+ var upgradeRequest = indexedDB.open(databaseName, version + 1);
+
+ upgradeRequest.onupgradeneeded = function(e) {
+ var upgradeDb = e.target.result;
+ var store = upgradeDb.createObjectStore(objectStoreName, { keyPath: "", autoIncrement: false });
+ store.createIndex(indexName, "", { unique: false, multiEntry: false });
+ callback();
+ }
+ upgradeRequest.onsuccess = function(e) {
+ var upgradeDb = e.target.result;
+ upgradeDb.close();
+ callback();
+ }
+ }
+ return promise;
+}
+
+window.debugTest = true;
dgozman 2017/05/26 19:10:46 Remove?
kristipark 2017/05/26 22:42:16 Done.
+async function test()
+{
+ var databaseName = "testDatabase";
+ var objectStoreName1 = "testObjectStore1";
+ var objectStoreName2 = "testObjectStore2";
+ var indexName = "testIndex";
+
+ var indexedDBModel = InspectorTest.mainTarget.model(Resources.IndexedDBModel);
+ var mainFrameId = InspectorTest.resourceTreeModel.mainFrame.id;
+ var securityOrigin = "http://127.0.0.1:8000";
+ var databaseId;
+
+ var refreshDatabase = function(databaseId, callback) {
dgozman 2017/05/26 19:10:46 function refreshDatabase(
kristipark 2017/05/26 22:42:16 Done.
+ var event = indexedDBModel.addEventListener(Resources.IndexedDBModel.Events.DatabaseLoaded, () => {
+ Common.EventTarget.removeEventListeners([event]);
+ callback();
+ });
+ indexedDBModel.refreshDatabase(databaseId);
dgozman 2017/05/26 19:10:46 It's better to get a view and emulate click on the
kristipark 2017/05/26 22:42:15 Done.
+ }
+
+ // Initial tree
+ InspectorTest.dumpIndexedDBTree();
+
+ // Create database
+ await InspectorTest.evaluateInPageAsync("createDatabase('" + databaseName + "')");
+ var waitUntilAdded = function(callback) {
dgozman 2017/05/26 19:10:46 function waitUntilAdded(callback) {
kristipark 2017/05/26 22:42:16 Done.
+ var event = indexedDBModel.addEventListener(Resources.IndexedDBModel.Events.DatabaseAdded, () => {
+ Common.EventTarget.removeEventListeners([event]);
+ callback();
+ });
+ UI.panels.resources._sidebar.indexedDBListTreeElement.refreshIndexedDB();
+ }
+ await new Promise(waitUntilAdded);
+ var idbDatabaseTreeElement = UI.panels.resources._sidebar.indexedDBListTreeElement._idbDatabaseTreeElements[0];
+ databaseId = idbDatabaseTreeElement._databaseId;
+ InspectorTest.addResult("Created database.");
+ InspectorTest.dumpIndexedDBTree();
+
+ // Create first objectstore
+ await InspectorTest.evaluateInPageAsync("createObjectStore('" + databaseName + "', '" + objectStoreName1 + "', '" + indexName + "')");
+ await new Promise(resolve => refreshDatabase(databaseId, resolve));
+ InspectorTest.addResult("Created first objectstore.");
+ InspectorTest.dumpIndexedDBTree();
+
+ // Create second objectstore
+ await InspectorTest.evaluateInPageAsync("createObjectStore('" + databaseName + "', '" + objectStoreName2 + "', '" + indexName + "')");
+ await new Promise(resolve => refreshDatabase(databaseId, resolve));
+ InspectorTest.addResult("Created second objectstore.");
+ InspectorTest.dumpIndexedDBTree();
+
+ InspectorTest.completeTest();
+}
+</script>
+</head>
+<body onload="runTest()">
+<p>Tests refreshing the database information and data views.</p>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698