| <html> |
| <head> |
| <script src="../inspector-test.js"></script> |
| <script src="indexeddb-test.js"></script> |
| <script> |
| function test() |
| { |
| var indexedDBModel = new WebInspector.IndexedDBModel(); |
| var mainFrameId = WebInspector.resourceTreeModel.mainFrame.id; |
| var databaseName = "testDatabase1"; |
| var securityOrigin = "http://127.0.0.1:8000"; |
| var databaseId = new WebInspector.IndexedDBModel.DatabaseId(securityOrigin, databaseName); |
| |
| function dumpDatabase() |
| { |
| InspectorTest.addResult("Dumping database:"); |
| var database = indexedDBModel._databases.get(databaseId); |
| if (!database) |
| return; |
| InspectorTest.addResult(database.databaseId.name); |
| InspectorTest.addResult(" intVersion: " + database.intVersion); |
| InspectorTest.addResult(" objectStores:"); |
| var objectStoreNames = []; |
| for (var objectStoreName in database.objectStores) |
| objectStoreNames.push(objectStoreName); |
| objectStoreNames.sort(); |
| for (var i = 0; i < objectStoreNames.length; ++i) { |
| var objectStore = database.objectStores[objectStoreNames[i]]; |
| InspectorTest.addResult(" " + objectStore.name); |
| InspectorTest.addResult(" keyPath: " + JSON.stringify(objectStore.keyPath)); |
| InspectorTest.addResult(" autoIncrement: " + objectStore.autoIncrement); |
| InspectorTest.addResult(" indexes: "); |
| var indexNames = []; |
| for (var indexName in objectStore.indexes) |
| indexNames.push(indexName); |
| indexNames.sort(); |
| for (var j = 0; j < indexNames.length; ++j) { |
| var index = objectStore.indexes[indexNames[j]]; |
| InspectorTest.addResult(" " + index.name); |
| InspectorTest.addResult(" keyPath: " + JSON.stringify(index.keyPath)); |
| InspectorTest.addResult(" unique: " + index.unique); |
| InspectorTest.addResult(" multiEntry: " + index.multiEntry); |
| } |
| } |
| InspectorTest.addResult(""); |
| } |
| |
| InspectorTest.addSniffer(WebInspector.IndexedDBModel.prototype, "_updateOriginDatabaseNames", step2, false); |
| |
| function step2() |
| { |
| InspectorTest.createDatabase(mainFrameId, databaseName, step3); |
| } |
| |
| function step3() |
| { |
| InspectorTest.addSniffer(WebInspector.IndexedDBModel.prototype, "_updateOriginDatabaseNames", step4, false); |
| indexedDBModel.refreshDatabaseNames(); |
| } |
| |
| function step4() |
| { |
| dumpDatabase(); |
| |
| indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step5); |
| indexedDBModel.refreshDatabase(databaseId); |
| } |
| |
| function step5() |
| { |
| indexedDBModel.removeEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step5); |
| dumpDatabase(); |
| |
| InspectorTest.createObjectStore(mainFrameId, databaseName, "testObjectStore1", "test.key.path", true, step6); |
| } |
| |
| function step6() |
| { |
| indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step7); |
| indexedDBModel.refreshDatabase(databaseId); |
| } |
| |
| function step7() |
| { |
| indexedDBModel.removeEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step7); |
| dumpDatabase(); |
| |
| InspectorTest.createObjectStore(mainFrameId, databaseName, "testObjectStore2", null, false, step8); |
| } |
| |
| function step8() |
| { |
| indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step9); |
| indexedDBModel.refreshDatabase(databaseId); |
| } |
| |
| function step9() |
| { |
| indexedDBModel.removeEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step9); |
| dumpDatabase(); |
| |
| InspectorTest.createObjectStoreIndex(mainFrameId, databaseName, "testObjectStore2", "testIndexName1", "", false, true, step10); |
| } |
| |
| function step10() |
| { |
| indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step11); |
| indexedDBModel.refreshDatabase(databaseId); |
| } |
| |
| function step11() |
| { |
| indexedDBModel.removeEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step11); |
| dumpDatabase(); |
| |
| InspectorTest.createObjectStoreIndex(mainFrameId, databaseName, "testObjectStore2", "testIndexName2", ["key.path1", "key.path2"], true, false, step12); |
| } |
| |
| function step12() |
| { |
| indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step13); |
| indexedDBModel.refreshDatabase(databaseId); |
| } |
| |
| function step13() |
| { |
| indexedDBModel.removeEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step13); |
| dumpDatabase(); |
| |
| InspectorTest.deleteObjectStoreIndex(mainFrameId, databaseName, "testObjectStore2", "testIndexName2", step14); |
| } |
| |
| function step14() |
| { |
| indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step15); |
| indexedDBModel.refreshDatabase(databaseId); |
| } |
| |
| function step15() |
| { |
| indexedDBModel.removeEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step15); |
| dumpDatabase(); |
| |
| InspectorTest.deleteObjectStoreIndex(mainFrameId, databaseName, "testObjectStore2", "testIndexName1", step16); |
| } |
| |
| function step16() |
| { |
| indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step17); |
| indexedDBModel.refreshDatabase(databaseId); |
| } |
| |
| function step17() |
| { |
| indexedDBModel.removeEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step17); |
| dumpDatabase(); |
| |
| InspectorTest.deleteObjectStore(mainFrameId, databaseName, "testObjectStore2", step18); |
| } |
| |
| function step18() |
| { |
| indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step19); |
| indexedDBModel.refreshDatabase(databaseId); |
| } |
| |
| function step19() |
| { |
| indexedDBModel.removeEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step19); |
| dumpDatabase(); |
| |
| InspectorTest.deleteObjectStore(mainFrameId, databaseName, "testObjectStore1", step20); |
| } |
| |
| function step20() |
| { |
| indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step21); |
| indexedDBModel.refreshDatabase(databaseId); |
| } |
| |
| function step21() |
| { |
| indexedDBModel.removeEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, step21); |
| dumpDatabase(); |
| InspectorTest.deleteDatabase(mainFrameId, databaseName, step22); |
| } |
| |
| function step22() |
| { |
| InspectorTest.completeTest(); |
| } |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Tests that database names are correctly loaded and saved in IndexedDBModel.</p> |
| </body> |
| </html> |