• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
4<script src="../../fast/js/resources/js-test-pre.js"></script>
5<script src="../../fast/js/resources/js-test-post-function.js"></script>
6<script src="resources/shared.js"></script>
7</head>
8<body>
9<p id="description"></p>
10<div id="console"></div>
11<script>
12
13description("An open connection blocks a separate connection's setVersion call");
14if (window.layoutTestController)
15    layoutTestController.waitUntilDone();
16
17connections = []
18function test()
19{
20    if ('webkitIndexedDB' in window)
21        IndexedDB = webkitIndexedDB;
22    else if ('mozIndexedDB' in window)
23        IndexedDB = mozIndexedDB;
24    shouldBeFalse("IndexedDB == null");
25    openDBConnection();
26}
27
28function openDBConnection()
29{
30    request = evalAndLog("IndexedDB.open('set-version-blocked')");
31    request.onsuccess = openSuccess;
32    request.onerror = unexpectedErrorCallback;
33}
34
35function openSuccess()
36{
37    connection = event.target.result;
38    connections.push(connection);
39    original_version = connection.version;
40    if (connections.length < 2)
41        openDBConnection();
42    else {
43        var versionChangeRequest = evalAndLog("connections[0].setVersion('version 1')");
44        versionChangeRequest.onerror = unexpectedErrorCallback;
45        versionChangeRequest.onsuccess = inSetVersion;
46        versionChangeRequest.onblocked = blocked;
47    }
48}
49
50seen_blocked_event = false;
51function blocked()
52{
53    evalAndLog("seen_blocked_event = true");
54    blocked_event = event;
55    shouldBeEqualToString("blocked_event.version", "version 1");
56    shouldEvaluateTo("blocked_event.target.readyState", 1);
57    evalAndLog("connections[1].close()");
58}
59
60function inSetVersion()
61{
62    debug("in setVersion.onsuccess");
63    shouldBeTrue("seen_blocked_event");
64    deleteAllObjectStores(connections[0]);
65    done();
66}
67
68var successfullyParsed = true;
69
70test();
71
72</script>
73</body>
74</html>
75