Chromium Code Reviews| 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..71786234b2bc4c5ab86e589cd23047162f978190 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"; |
| @@ -87,6 +23,11 @@ async function test() |
| view._refreshDatabaseButtonClicked(); |
| } |
| + function waitRefreshDatabaseRightClick(callback) { |
|
dmurph
2017/06/02 19:22:05
You use a lot of these callback in promises. Can y
kristipark
2017/06/03 01:42:44
Good point! Changed all but the event listeners to
|
| + InspectorTest.addSniffer(Resources.IDBDataView.prototype, "_updatedDataForTests", callback, false); |
| + idbDatabaseTreeElement._refreshIndexedDB(); |
| + } |
| + |
| function waitUpdateDataView(callback) { |
| InspectorTest.addSniffer(Resources.IDBDataView.prototype, "_updatedDataForTests", callback, false); |
| } |
| @@ -128,7 +69,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,13 +83,13 @@ async function test() |
| var databaseView = idbDatabaseTreeElement._view; |
| // Create first objectstore |
| - await InspectorTest.evaluateInPageAsync("createObjectStore('" + databaseName + "', '" + objectStoreName1 + "', '" + indexName + "', '" + keyPath + "')"); |
| + await InspectorTest.createObjectStoreAsync(databaseName, objectStoreName1, indexName, keyPath); |
| await new Promise(waitRefreshDatabase); |
| InspectorTest.addResult("Created first objectstore."); |
| InspectorTest.dumpIndexedDBTree(); |
| // Create second objectstore |
| - await InspectorTest.evaluateInPageAsync("createObjectStore('" + databaseName + "', '" + objectStoreName2 + "', '" + indexName + "', '" + keyPath + "')"); |
| + await InspectorTest.createObjectStoreAsync(databaseName, objectStoreName2, indexName, keyPath); |
| await new Promise(waitRefreshDatabase); |
| InspectorTest.addResult("Created second objectstore."); |
| InspectorTest.dumpIndexedDBTree(); |
| @@ -160,21 +101,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 new Promise(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 new Promise(waitRefreshDatabaseRightClick); |
| + await new Promise(waitUpdateDataView); // Wait for second objectstore data to load on page. |
| + InspectorTest.addResult("Right-click refreshed database."); |
| dumpObjectStores(); |
| InspectorTest.completeTest(); |