blob: a567151eb7ce1bbc3cb7e859b76a7c0e0bd23afc [file] [log] [blame]
<html>
<head>
<script src="../inspector-test.js"></script>
<script src="indexeddb-test.js"></script>
<script>
function test()
{
var mainFrameId = WebInspector.resourceTreeModel.mainFrame.id;
var indexedDBModel;
var withoutIndexedDBURL = "http://localhost:8000/inspector/indexeddb/resources/without-indexed-db.html";
var originalURL = "http://127.0.0.1:8000/inspector/indexeddb/resources-panel.html";
var databaseName = "testDatabase";
var objectStoreName = "testObjectStore";
var indexName = "testIndexName";
function createDatabase(callback)
{
InspectorTest.createDatabase(mainFrameId, databaseName, step2);
function step2()
{
InspectorTest.createObjectStore(mainFrameId, databaseName, objectStoreName, "", false, step3);
}
function step3()
{
InspectorTest.createObjectStoreIndex(mainFrameId, databaseName, objectStoreName, indexName, "", false, false, callback);
}
}
function deleteDatabase(callback)
{
InspectorTest.deleteObjectStoreIndex(mainFrameId, databaseName, objectStoreName, indexName, step2);
function step2()
{
InspectorTest.deleteObjectStore(mainFrameId, databaseName, objectStoreName, step3);
}
function step3()
{
InspectorTest.deleteDatabase(mainFrameId, databaseName, callback);
}
}
WebInspector.showPanel("resources");
InspectorTest.addSniffer(WebInspector.IndexedDBTreeElement.prototype, "_indexedDBAdded", indexedDBAdded, true);
function indexedDBAdded()
{
InspectorTest.addResult("Database added.");
}
InspectorTest.addSniffer(WebInspector.IndexedDBTreeElement.prototype, "_indexedDBRemoved", indexedDBRemoved, true);
function indexedDBRemoved()
{
InspectorTest.addResult("Database removed.");
}
InspectorTest.addSniffer(WebInspector.IndexedDBTreeElement.prototype, "_indexedDBLoaded", indexedDBLoaded, true);
function indexedDBLoaded()
{
InspectorTest.addResult("Database loaded.");
}
InspectorTest.addResult("Expanded IndexedDB tree element.");
WebInspector.panels.resources.indexedDBListTreeElement.expand();
InspectorTest.addSniffer(WebInspector.IndexedDBModel.prototype, "_updateOriginDatabaseNames", indexedDBTreeElementExpanded, false);
function indexedDBTreeElementExpanded()
{
InspectorTest.dumpIndexedDBTree();
InspectorTest.addResult("Created database.");
createDatabase(databaseCreated);
}
function databaseCreated()
{
indexedDBModel = WebInspector.panels.resources.indexedDBListTreeElement._indexedDBModel;
indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, databaseLoaded);
WebInspector.panels.resources.indexedDBListTreeElement.refreshIndexedDB();
}
function databaseLoaded()
{
indexedDBModel.removeEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, databaseLoaded);
InspectorTest.dumpIndexedDBTree();
InspectorTest.addResult("Navigated to another security origin.");
InspectorTest.navigate(withoutIndexedDBURL, navigatedAway);
}
function navigatedAway()
{
InspectorTest.dumpIndexedDBTree();
InspectorTest.addResult("Navigated back.");
InspectorTest.navigate(originalURL, navigatedBack);
}
function navigatedBack()
{
InspectorTest.dumpIndexedDBTree();
InspectorTest.addResult("Deleted database.");
deleteDatabase(databaseDeleted);
}
function databaseDeleted()
{
WebInspector.panels.resources.indexedDBListTreeElement.refreshIndexedDB();
InspectorTest.addSniffer(WebInspector.IndexedDBModel.prototype, "_updateOriginDatabaseNames", databaseNamesLoadedAfterDeleting, false);
}
function databaseNamesLoadedAfterDeleting()
{
InspectorTest.dumpIndexedDBTree();
WebInspector.panels.resources.indexedDBListTreeElement.collapse();
InspectorTest.completeTest();
}
}
</script>
</head>
<body onload="runTest()">
<p>Tests IndexedDB tree element on resources panel.</p>
</body>
</html>