Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <html> | |
| 2 <head> | |
| 3 <script src="../inspector-test.js"></script> | |
| 4 <script src="../resources-test.js"></script> | |
| 5 <script src="../console-test.js"></script> | |
| 6 <script src="indexeddb-test.js"></script> | |
| 7 <script> | |
| 8 | |
| 9 var createDatabase = function(databaseName) { | |
|
dgozman
2017/05/26 19:10:46
function createDatabase(
kristipark
2017/05/26 22:42:15
Done.
| |
| 10 var callback; | |
| 11 var promise = new Promise((fulfill) => callback = fulfill); | |
| 12 var request = indexedDB.open(databaseName); | |
| 13 request.onerror = function(event) { | |
| 14 console.error("IndexedDB error: " + event); | |
| 15 } | |
| 16 request.onsuccess = function(event) { | |
| 17 request.result.close(); | |
| 18 callback(); | |
| 19 } | |
| 20 return promise; | |
| 21 } | |
| 22 | |
| 23 var createObjectStore = function(databaseName, objectStoreName, indexName) { | |
|
dgozman
2017/05/26 19:10:46
function createObjectStore(
kristipark
2017/05/26 22:42:16
Done.
| |
| 24 var callback; | |
| 25 var promise = new Promise((fulfill) => callback = fulfill); | |
| 26 var request = indexedDB.open(databaseName); | |
| 27 request.onerror = function(event) { | |
| 28 console.error("IndexedDB error: " + event); | |
| 29 } | |
| 30 request.onsuccess = function(event) { | |
| 31 var db = request.result; | |
| 32 var version = db.version; | |
| 33 db.close(); | |
| 34 | |
| 35 var upgradeRequest = indexedDB.open(databaseName, version + 1); | |
| 36 | |
| 37 upgradeRequest.onupgradeneeded = function(e) { | |
| 38 var upgradeDb = e.target.result; | |
| 39 var store = upgradeDb.createObjectStore(objectStoreName, { keyPath: "", autoIncrement: false }); | |
| 40 store.createIndex(indexName, "", { unique: false, multiEntry: false }); | |
| 41 callback(); | |
| 42 } | |
| 43 upgradeRequest.onsuccess = function(e) { | |
| 44 var upgradeDb = e.target.result; | |
| 45 upgradeDb.close(); | |
| 46 callback(); | |
| 47 } | |
| 48 } | |
| 49 return promise; | |
| 50 } | |
| 51 | |
| 52 window.debugTest = true; | |
|
dgozman
2017/05/26 19:10:46
Remove?
kristipark
2017/05/26 22:42:16
Done.
| |
| 53 async function test() | |
| 54 { | |
| 55 var databaseName = "testDatabase"; | |
| 56 var objectStoreName1 = "testObjectStore1"; | |
| 57 var objectStoreName2 = "testObjectStore2"; | |
| 58 var indexName = "testIndex"; | |
| 59 | |
| 60 var indexedDBModel = InspectorTest.mainTarget.model(Resources.IndexedDBModel ); | |
| 61 var mainFrameId = InspectorTest.resourceTreeModel.mainFrame.id; | |
| 62 var securityOrigin = "http://127.0.0.1:8000"; | |
| 63 var databaseId; | |
| 64 | |
| 65 var refreshDatabase = function(databaseId, callback) { | |
|
dgozman
2017/05/26 19:10:46
function refreshDatabase(
kristipark
2017/05/26 22:42:16
Done.
| |
| 66 var event = indexedDBModel.addEventListener(Resources.IndexedDBModel.Eve nts.DatabaseLoaded, () => { | |
| 67 Common.EventTarget.removeEventListeners([event]); | |
| 68 callback(); | |
| 69 }); | |
| 70 indexedDBModel.refreshDatabase(databaseId); | |
|
dgozman
2017/05/26 19:10:46
It's better to get a view and emulate click on the
kristipark
2017/05/26 22:42:15
Done.
| |
| 71 } | |
| 72 | |
| 73 // Initial tree | |
| 74 InspectorTest.dumpIndexedDBTree(); | |
| 75 | |
| 76 // Create database | |
| 77 await InspectorTest.evaluateInPageAsync("createDatabase('" + databaseName + "')"); | |
| 78 var waitUntilAdded = function(callback) { | |
|
dgozman
2017/05/26 19:10:46
function waitUntilAdded(callback) {
kristipark
2017/05/26 22:42:16
Done.
| |
| 79 var event = indexedDBModel.addEventListener(Resources.IndexedDBModel.Eve nts.DatabaseAdded, () => { | |
| 80 Common.EventTarget.removeEventListeners([event]); | |
| 81 callback(); | |
| 82 }); | |
| 83 UI.panels.resources._sidebar.indexedDBListTreeElement.refreshIndexedDB() ; | |
| 84 } | |
| 85 await new Promise(waitUntilAdded); | |
| 86 var idbDatabaseTreeElement = UI.panels.resources._sidebar.indexedDBListTreeE lement._idbDatabaseTreeElements[0]; | |
| 87 databaseId = idbDatabaseTreeElement._databaseId; | |
| 88 InspectorTest.addResult("Created database."); | |
| 89 InspectorTest.dumpIndexedDBTree(); | |
| 90 | |
| 91 // Create first objectstore | |
| 92 await InspectorTest.evaluateInPageAsync("createObjectStore('" + databaseName + "', '" + objectStoreName1 + "', '" + indexName + "')"); | |
| 93 await new Promise(resolve => refreshDatabase(databaseId, resolve)); | |
| 94 InspectorTest.addResult("Created first objectstore."); | |
| 95 InspectorTest.dumpIndexedDBTree(); | |
| 96 | |
| 97 // Create second objectstore | |
| 98 await InspectorTest.evaluateInPageAsync("createObjectStore('" + databaseName + "', '" + objectStoreName2 + "', '" + indexName + "')"); | |
| 99 await new Promise(resolve => refreshDatabase(databaseId, resolve)); | |
| 100 InspectorTest.addResult("Created second objectstore."); | |
| 101 InspectorTest.dumpIndexedDBTree(); | |
| 102 | |
| 103 InspectorTest.completeTest(); | |
| 104 } | |
| 105 </script> | |
| 106 </head> | |
| 107 <body onload="runTest()"> | |
| 108 <p>Tests refreshing the database information and data views.</p> | |
| 109 </body> | |
| 110 </html> | |
| OLD | NEW |