Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/storage/indexeddb/resources/observer-init.js |
| diff --git a/third_party/WebKit/LayoutTests/storage/indexeddb/resources/observer-init.js b/third_party/WebKit/LayoutTests/storage/indexeddb/resources/observer-init.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..24abc5459ae729385bf1bac821adca1a8a74c723 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/storage/indexeddb/resources/observer-init.js |
| @@ -0,0 +1,49 @@ |
| +var initObserverTestState = function(t, callback) { |
| + |
| + var pendingRequests = 2; |
| + var openDone = function() { |
| + pendingRequests = pendingRequests - 1; |
| + if (pendingRequests == 0) { |
| + callback(); |
| + t.done(); |
| + } |
| + else if (pendingRequests < 0) { |
| + assert_unreached("Database added without incrementing pending count."); |
| + } |
| + }; |
| + |
| + var deleteAndOpen = function(dbName, onUpgrade, onOpen) { |
| + var deleteRequest = indexedDB.deleteDatabase(dbName); |
| + deleteRequest.onerror = t.unreached_func('deleteDatabase should not fail'); |
| + deleteRequest.onsuccess = t.step_func(function(e) { |
| + var openRequest = indexedDB.open(dbName); |
| + var upgradeCalled = false; |
| + openRequest.onerror = t.unreached_func('open should not fail'); |
| + openRequest.onupgradeneeded = t.step_func(function() { |
| + upgradeCalled = true; |
| + var db = openRequest.result; |
| + db.onerror = t.unreached_func('db should not fail'); |
| + onUpgrade(db); |
| + }); |
| + openRequest.onsuccess = t.step_func(function() { |
| + assert_true(upgradeCalled); |
| + var db = openRequest.result; |
| + onOpen(db); |
| + }); |
| + }); |
| + }; |
| + |
| + deleteAndOpen("observersDB1", function(db) { |
| + var os1 = db.createObjectStore('store1'); |
| + var os2 = db.createObjectStore('store2'); |
|
cmumford
2016/10/25 17:57:30
Nit: fix indent.
dmurph
2016/10/25 18:23:51
Done.
|
| + os1.put('b', 'a'); |
| + os2.put('y', 'x'); |
| + }, openDone); |
| + |
| + deleteAndOpen("observersDB2", function(db) { |
| + var os1 = db.createObjectStore('store3'); |
| + var os2 = db.createObjectStore('store4'); |
| + os1.put('c', 'c'); |
| + os2.put('w', 'w'); |
| + }, openDone); |
| +}; |