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> |