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

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: Better handling of null database in view, removed extra lines in test file, moved utility test func… 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
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();

Powered by Google App Engine
This is Rietveld 408576698