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

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

Issue 2914293002: [IndexedDB] [DevTools] Right-click 'Refresh' on database now updates object store view, also fixed … (Closed)
Patch Set: Using await instead Created 3 years, 6 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
index d9c3bb0df10d3ba4772291f7e19008ec823914bb..f9fb0a8c153cec1844f0e1a5eb99623bbb02dd10 100644
--- 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
@@ -6,70 +6,6 @@
<script src="indexeddb-test.js"></script>
<script>
-function onIndexedDBError(e) {
- console.error("IndexedDB error: " + e);
-}
-
-function createDatabase(databaseName) {
- var callback;
- var promise = new Promise((fulfill) => callback = fulfill);
- var request = indexedDB.open(databaseName);
- request.onerror = onIndexedDBError;
- request.onsuccess = function(event) {
- request.result.close();
- callback();
- }
- return promise;
-}
-
-function createObjectStore(databaseName, objectStoreName, indexName, keyPath) {
- var callback;
- var promise = new Promise((fulfill) => callback = fulfill);
- var request = indexedDB.open(databaseName);
- request.onerror = onIndexedDBError;
- request.onsuccess = function(event) {
- var db = request.result;
- var version = db.version;
- db.close();
-
- var upgradeRequest = indexedDB.open(databaseName, version + 1);
-
- upgradeRequest.onerror = onIndexedDBError;
- upgradeRequest.onupgradeneeded = function(e) {
- var upgradeDb = e.target.result;
- var store = upgradeDb.createObjectStore(objectStoreName, { keyPath: "test", autoIncrement: false });
- store.createIndex(indexName, "test", { unique: false, multiEntry: false });
- callback();
- }
- upgradeRequest.onsuccess = function(e) {
- var upgradeDb = e.target.result;
- upgradeDb.close();
- callback();
- }
- }
- return promise;
-}
-
-function addIDBValue(databaseName, objectStoreName, key, value) {
- var callback;
- var promise = new Promise((fulfill) => callback = fulfill);
- var request = indexedDB.open(databaseName);
- request.onerror = onIndexedDBError;
- request.onsuccess = function(event) {
- var db = request.result;
- var transaction = db.transaction(objectStoreName, "readwrite");
- var store = transaction.objectStore(objectStoreName);
- store.put({ test: key, testValue: value });
-
- transaction.onerror = onIndexedDBError;
- transaction.oncomplete = function() {
- db.close();
- callback();
- };
- }
- return promise;
-}
-
async function test()
{
var databaseName = "testDatabase";
@@ -81,14 +17,23 @@ async function test()
var indexedDBModel = InspectorTest.mainTarget.model(Resources.IndexedDBModel);
var databaseId;
- function waitRefreshDatabase(callback) {
+ function waitRefreshDatabase() {
var view = UI.panels.resources._sidebar.indexedDBListTreeElement._idbDatabaseTreeElements[0]._view;
- InspectorTest.addSniffer(Resources.IDBDatabaseView.prototype, "_updatedForTests", callback, false);
view._refreshDatabaseButtonClicked();
+ return new Promise((resolve) => {
+ InspectorTest.addSniffer(Resources.IDBDatabaseView.prototype, "_updatedForTests", resolve, false)
+ });
}
- function waitUpdateDataView(callback) {
- InspectorTest.addSniffer(Resources.IDBDataView.prototype, "_updatedDataForTests", callback, false);
+ function waitRefreshDatabaseRightClick() {
+ idbDatabaseTreeElement._refreshIndexedDB();
+ return waitUpdateDataView();
+ }
+
+ function waitUpdateDataView() {
+ return new Promise((resolve) => {
+ InspectorTest.addSniffer(Resources.IDBDataView.prototype, "_updatedDataForTests", resolve, false)
+ });
}
function waitDatabaseLoaded(callback) {
@@ -128,7 +73,7 @@ async function test()
InspectorTest.dumpIndexedDBTree();
// Create database
- await InspectorTest.evaluateInPageAsync("createDatabase('" + databaseName + "')");
+ await InspectorTest.createDatabaseAsync(databaseName);
await new Promise(waitDatabaseAdded);
var idbDatabaseTreeElement = UI.panels.resources._sidebar.indexedDBListTreeElement._idbDatabaseTreeElements[0];
databaseId = idbDatabaseTreeElement._databaseId;
@@ -142,14 +87,14 @@ async function test()
var databaseView = idbDatabaseTreeElement._view;
// Create first objectstore
- await InspectorTest.evaluateInPageAsync("createObjectStore('" + databaseName + "', '" + objectStoreName1 + "', '" + indexName + "', '" + keyPath + "')");
- await new Promise(waitRefreshDatabase);
+ await InspectorTest.createObjectStoreAsync(databaseName, objectStoreName1, indexName, keyPath);
+ await waitRefreshDatabase();
InspectorTest.addResult("Created first objectstore.");
InspectorTest.dumpIndexedDBTree();
// Create second objectstore
- await InspectorTest.evaluateInPageAsync("createObjectStore('" + databaseName + "', '" + objectStoreName2 + "', '" + indexName + "', '" + keyPath + "')");
- await new Promise(waitRefreshDatabase);
+ await InspectorTest.createObjectStoreAsync(databaseName, objectStoreName2, indexName, keyPath);
+ await waitRefreshDatabase();
InspectorTest.addResult("Created second objectstore.");
InspectorTest.dumpIndexedDBTree();
@@ -160,21 +105,25 @@ async function test()
}
// Add entries
- await InspectorTest.evaluateInPageAsync("addIDBValue('" + databaseName + "', '" + objectStoreName1 + "', 'testKey', 'testValue')");
+ await InspectorTest.addIDBValueAsync(databaseName, objectStoreName1, "testKey", "testValue");
InspectorTest.addResult("Added " + objectStoreName1 + " entry.");
dumpObjectStores();
// Refresh database view
- await new Promise(waitRefreshDatabase);
- for (var i = 0; i < idbDatabaseTreeElement.childCount(); ++i) {
- var objectStoreTreeElement = idbDatabaseTreeElement.childAt(i);
- if (objectStoreTreeElement._objectStore.name === objectStoreName1) {
- objectStoreTreeElement.onselect(false);
- break;
- }
- }
- await new Promise(waitUpdateDataView); // Wait for objectstore data to load on page.
- InspectorTest.addResult("Refreshed database.");
+ await waitRefreshDatabase();
+ await waitUpdateDataView(); // Wait for second objectstore data to load on page.
+ InspectorTest.addResult("Refreshed database view.");
+ dumpObjectStores();
+
+ // Add entries
+ await InspectorTest.addIDBValueAsync(databaseName, objectStoreName2, "testKey2", "testValue2");
+ InspectorTest.addResult("Added " + objectStoreName2 + " entry.");
+ dumpObjectStores();
+
+ // Right-click refresh database view
+ await waitRefreshDatabaseRightClick();
+ await waitUpdateDataView(); // Wait for second objectstore data to load on page.
+ InspectorTest.addResult("Right-click refreshed database.");
dumpObjectStores();
InspectorTest.completeTest();

Powered by Google App Engine
This is Rietveld 408576698