| Index: LayoutTests/inspector/sources/debugger/async-callstack-indexed-db.html
|
| diff --git a/LayoutTests/inspector/sources/debugger/async-callstack-indexed-db.html b/LayoutTests/inspector/sources/debugger/async-callstack-indexed-db.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c7449dc1430b0d6016dc90205b92efc52f487276
|
| --- /dev/null
|
| +++ b/LayoutTests/inspector/sources/debugger/async-callstack-indexed-db.html
|
| @@ -0,0 +1,123 @@
|
| +<html>
|
| +<head>
|
| +<script src="../../../http/tests/inspector/inspector-test.js"></script>
|
| +<script src="../../../http/tests/inspector/debugger-test.js"></script>
|
| +<script>
|
| +
|
| +var version = 1;
|
| +var db;
|
| +
|
| +function testFunction()
|
| +{
|
| + setTimeout(openDB);
|
| +}
|
| +
|
| +function onError()
|
| +{
|
| + console.error("FAIL: " + new Error().stack);
|
| + debugger;
|
| +}
|
| +
|
| +function openDB()
|
| +{
|
| + var request = indexedDB.open("async-callstack-indexed-db", version);
|
| + request.onupgradeneeded = onUpgradeNeeded;
|
| + request.onsuccess = onSuccessOpenDB;
|
| + request.onerror = onError;
|
| +}
|
| +
|
| +function onUpgradeNeeded(e)
|
| +{
|
| + debugger;
|
| + var db = e.target.result;
|
| + e.target.transaction.onerror = onError;
|
| +
|
| + if (db.objectStoreNames.contains("foo"))
|
| + db.deleteObjectStore("foo");
|
| +
|
| + db.createObjectStore("foo", { keyPath: "id" });
|
| +}
|
| +
|
| +function onSuccessOpenDB(e)
|
| +{
|
| + debugger;
|
| + db = e.target.result;
|
| + populateDB();
|
| +}
|
| +
|
| +function populateDB()
|
| +{
|
| + var trans = db.transaction(["foo"], "readwrite");
|
| + var store = trans.objectStore("foo");
|
| + var request = store.put({ "id" : 1, "bar": "baz" });
|
| + request.onsuccess = onSuccessStorePut;
|
| + request.onerror = onError;
|
| +}
|
| +
|
| +function onSuccessStorePut(e)
|
| +{
|
| + debugger;
|
| + getAllItems();
|
| +}
|
| +
|
| +function getAllItems()
|
| +{
|
| + var trans = db.transaction(["foo"], "readwrite");
|
| + var store = trans.objectStore("foo");
|
| + var keyRange = IDBKeyRange.lowerBound(0);
|
| + var cursorRequest = store.openCursor(keyRange);
|
| + cursorRequest.onsuccess = onSuccessCursorRequest;
|
| + cursorRequest.onerror = onError;
|
| +}
|
| +
|
| +function onSuccessCursorRequest(e)
|
| +{
|
| + debugger;
|
| + deleteItem();
|
| +}
|
| +
|
| +function deleteItem()
|
| +{
|
| + var trans = db.transaction(["foo"], "readwrite");
|
| + var store = trans.objectStore("foo");
|
| + var request = store.delete(1);
|
| + request.onsuccess = onSuccessDeleteItem;
|
| + request.onerror = onError;
|
| +}
|
| +
|
| +function onSuccessDeleteItem()
|
| +{
|
| + debugger;
|
| + deleteDB();
|
| +}
|
| +
|
| +function deleteDB()
|
| +{
|
| + db.close();
|
| + var request = indexedDB.deleteDatabase("async-callstack-indexed-db");
|
| + request.onsuccess = onSuccessDeleteDatabase;
|
| + request.onerror = onError;
|
| +}
|
| +
|
| +function onSuccessDeleteDatabase()
|
| +{
|
| + debugger;
|
| +}
|
| +
|
| +var test = function()
|
| +{
|
| + var totalDebuggerStatements = 6;
|
| + var maxAsyncCallStackDepth = 4;
|
| + InspectorTest.runAsyncCallStacksTest(totalDebuggerStatements, maxAsyncCallStackDepth);
|
| +}
|
| +
|
| +</script>
|
| +</head>
|
| +
|
| +<body onload="runTest()">
|
| +<input type='button' onclick='testFunction()' value='Test'/>
|
| +<p>
|
| +Tests asynchronous call stacks for IndexedDB.
|
| +</p>
|
| +</body>
|
| +</html>
|
|
|