| <html> |
| <head> |
| <link rel="stylesheet" href="../../fast/js/resources/js-test-style.css"> |
| <script src="../../fast/js/resources/js-test-pre.js"></script> |
| <script src="../../fast/js/resources/js-test-post-function.js"></script> |
| <script src="resources/shared.js"></script> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| <script> |
| |
| description("An open connection blocks a separate connection's setVersion call"); |
| if (window.layoutTestController) |
| layoutTestController.waitUntilDone(); |
| |
| connections = [] |
| function test() |
| { |
| if ('webkitIndexedDB' in window) |
| IndexedDB = webkitIndexedDB; |
| else if ('mozIndexedDB' in window) |
| IndexedDB = mozIndexedDB; |
| shouldBeFalse("IndexedDB == null"); |
| openDBConnection(); |
| } |
| |
| function openDBConnection() |
| { |
| request = evalAndLog("IndexedDB.open('set-version-blocked')"); |
| request.onsuccess = openSuccess; |
| request.onerror = unexpectedErrorCallback; |
| } |
| |
| function openSuccess() |
| { |
| connection = event.target.result; |
| connections.push(connection); |
| original_version = connection.version; |
| if (connections.length < 2) |
| openDBConnection(); |
| else { |
| var versionChangeRequest = evalAndLog("connections[0].setVersion('version 1')"); |
| versionChangeRequest.onerror = unexpectedErrorCallback; |
| versionChangeRequest.onsuccess = inSetVersion; |
| versionChangeRequest.onblocked = blocked; |
| } |
| } |
| |
| seen_blocked_event = false; |
| function blocked() |
| { |
| evalAndLog("seen_blocked_event = true"); |
| blocked_event = event; |
| shouldBeEqualToString("blocked_event.version", "version 1"); |
| shouldEvaluateTo("blocked_event.target.readyState", 1); |
| evalAndLog("connections[1].close()"); |
| } |
| |
| function inSetVersion() |
| { |
| debug("in setVersion.onsuccess"); |
| shouldBeTrue("seen_blocked_event"); |
| deleteAllObjectStores(connections[0]); |
| done(); |
| } |
| |
| var successfullyParsed = true; |
| |
| test(); |
| |
| </script> |
| </body> |
| </html> |