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..5f15cc358580e832b4858edaa63122dc9cd3b906 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/inspector/indexeddb/database-refresh-view.html |
@@ -0,0 +1,89 @@ |
+<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> |
+ |
+window.debugTest = true; |
+async function test() |
+{ |
+ var databaseName = "testDatabase"; |
+ var objectStoreName = "testObjectStore"; |
+ |
+ function createIndexedDB(callback) { |
+ var mainFrameId = InspectorTest.resourceTreeModel.mainFrame.id; |
+ var model = InspectorTest.mainTarget.model(Resources.IndexedDBModel); |
+ InspectorTest.createDatabase(mainFrameId, "testDatabase", () => { |
+ var event = model.addEventListener(Resources.IndexedDBModel.Events.DatabaseAdded, () => { |
+ Common.EventTarget.removeEventListeners([event]); |
+ callback(); |
+ }); |
+ }); |
+ } |
+ |
+ function createObjectStore(callback) { |
+ var mainFrameId = InspectorTest.resourceTreeModel.mainFrame.id; |
+ InspectorTest.createObjectStore(mainFrameId, databaseName, objectStoreName, "key", true, callback); |
+ } |
+ |
+ function createObjectStoreIndex(callback) { |
+ var mainFrameId = InspectorTest.resourceTreeModel.mainFrame.id; |
+ InspectorTest.createObjectStoreIndex(mainFrameId, databaseName, objectStoreName, "testIndex", "value", false, true, callback); |
+ } |
+ |
+ function addIDBValue(callback) { |
+ InspectorTest.addIDBValue(callback, databaseName, objectStoreName, "testValue", "testKey"); |
+ } |
+ |
+ function dumpCurrentObjectStore() { |
+ InspectorTest.addResult("Current ObjectStore view:"); |
+ |
+ var objectStoreTreeElement = UI.panels.resources._sidebar.indexedDBListTreeElement.childAt(0).childAt(0); |
+ InspectorTest.addResult("Object store: " + objectStoreTreeElement.title); |
+ var entries = objectStoreTreeElement._view._entries; |
+ if (!entries.length) { |
+ InspectorTest.addResult(" (no entries)"); |
+ } else { |
+ for (var j = 0; j < entries.length; ++j) { |
+ InspectorTest.addResult(" Key = " + entries[j].key + ", value = " + entries[j].value); |
+ } |
+ } |
+ } |
+ |
+ await new Promise(createIndexedDB); |
+ await new Promise(createObjectStore); |
+ await new Promise(createObjectStoreIndex); |
+ |
+ var databaseTreeElement = UI.panels.resources._sidebar.indexedDBListTreeElement.childAt(0); |
+ databaseTreeElement._addIndexedDB(model, model.databaseId); |
+ databaseTreeElement.onselect(false); |
+ InspectorTest.addResult("Created database view."); |
+ var objectstoreTreeElement = databaseTreeElement.childAt(0); |
+ objectstoreTreeElement.onselect(false); |
+ InspectorTest.addResult("Created data view."); |
+ |
+ var databaseView = databaseTreeElement._view; |
+ var dataView = objectstoreTreeElement._view; |
+ |
+ dumpCurrentObjectStore(); |
+ |
+ await new Promise(addIDBValue); |
+ InspectorTest.addResult("Added objectstore entry."); |
+ |
+ dumpCurrentObjectStore(); |
+ |
+ databaseView._refreshDatabase(); |
+ InspectorTest.addResult("Refreshed database view."); |
+ |
+ dumpCurrentObjectStore(); |
+ |
+ InspectorTest.completeTest(); |
+} |
+</script> |
+</head> |
+<body onload="runTest()"> |
+<p>Tests refreshing the database information and data views.</p> |
+</body> |
+</html> |