OLD | NEW |
---|---|
1 if (this.importScripts) { | 1 if (this.importScripts) { |
2 importScripts('../../../resources/js-test.js'); | 2 importScripts('../../../resources/js-test.js'); |
3 importScripts('shared.js'); | 3 importScripts('shared.js'); |
4 } | 4 } |
5 | 5 |
6 description("Test the order when there are pending setVersion, delete and open c alls."); | 6 description("Test the order when there are pending open (with upgrade) and delet e calls."); |
7 | 7 |
8 indexedDBTest(null, h1OpenSuccess); | 8 indexedDBTest(null, h1OpenSuccess); |
9 function h1OpenSuccess(evt) | 9 function h1OpenSuccess(evt) |
10 { | 10 { |
11 preamble(evt); | 11 preamble(evt); |
12 evalAndLog("setVersionBlockedEventFired = false"); | 12 evalAndLog("openWithUpgradeBlockedEventFired = false"); |
13 evalAndLog("versionChangeComplete = false"); | 13 evalAndLog("upgradeComplete = false"); |
14 evalAndLog("deleteDatabaseBlockedEventFired = false"); | 14 evalAndLog("deleteDatabaseBlockedEventFired = false"); |
15 evalAndLog("deleteDatabaseComplete = false"); | 15 evalAndLog("deleteDatabaseComplete = false"); |
16 | 16 |
17 | |
cmumford
2016/07/15 14:55:37
delete extra line.
jsbell
2016/07/15 17:22:22
Done.
| |
17 evalAndLog("h1 = event.target.result"); | 18 evalAndLog("h1 = event.target.result"); |
18 | 19 |
19 h1.onversionchange = function h1OnVersionChange(evt) { | 20 h1.onversionchange = function h1OnVersionChange(evt) { |
20 preamble(evt); | 21 preamble(evt); |
21 shouldBe("event.target.version", "1"); | 22 shouldBe("event.target.version", "1"); |
22 shouldBe("event.oldVersion", "1"); | 23 shouldBe("event.oldVersion", "1"); |
23 shouldBe("event.newVersion", "2"); | 24 shouldBe("event.newVersion", "2"); |
24 | 25 |
25 h1.onversionchange = function h1SecondOnVersionChange(evt) { | 26 h1.onversionchange = function h1SecondOnVersionChange(evt) { |
26 preamble(evt); | 27 preamble(evt); |
27 shouldBe("event.target.version", "1"); | 28 testFailed('Second "versionchange" event should not be seen'); |
28 shouldBe("event.oldVersion", "1"); | |
29 shouldBeNull("event.newVersion"); | |
30 }; | 29 }; |
31 }; | 30 }; |
32 | 31 |
32 debug(''); | |
33 debug("Open h2:"); | 33 debug("Open h2:"); |
34 request = evalAndLog("indexedDB.open(dbname)"); | 34 request = evalAndLog("indexedDB.open(dbname)"); |
35 request.onblocked = unexpectedBlockedCallback; | 35 request.onblocked = unexpectedBlockedCallback; |
36 request.onerror = unexpectedErrorCallback; | 36 request.onerror = unexpectedErrorCallback; |
37 request.onsuccess = function h2OpenSuccess(evt) { | 37 request.onsuccess = function h2OpenSuccess(evt) { |
38 preamble(evt); | 38 preamble(evt); |
39 evalAndLog("h2OpenSuccess = true"); | |
39 h2 = event.target.result; | 40 h2 = event.target.result; |
40 | 41 |
41 h2.onversionchange = function h2OnVersionChange(evt) { | 42 h2.onversionchange = function h2OnVersionChange(evt) { |
42 preamble(evt); | 43 preamble(evt); |
43 shouldBe("event.target.version", "1"); | 44 shouldBe("event.target.version", "1"); |
44 shouldBe("event.oldVersion", "1"); | 45 shouldBe("event.oldVersion", "1"); |
45 shouldBe("event.newVersion", "2"); | 46 shouldBe("event.newVersion", "2"); |
46 | 47 |
47 h2.onversionchange = function h2OnSecondVersionChange(evt) { | 48 h2.onversionchange = function h2OnSecondVersionChange(evt) { |
48 preamble(evt); | 49 preamble(evt); |
49 shouldBe("event.target.version", "1"); | 50 testFailed('Second "versionchange" event should not be seen'); |
50 shouldBe("event.oldVersion", "1"); | |
51 shouldBe("event.newVersion", "null"); | |
52 }; | 51 }; |
53 }; | 52 }; |
54 | 53 |
55 debug("Try to open h3:"); | 54 debug(''); |
55 debug("Open h3:"); | |
56 request = evalAndLog("indexedDB.open(dbname, 2)"); | 56 request = evalAndLog("indexedDB.open(dbname, 2)"); |
57 request.onerror = unexpectedErrorCallback; | 57 request.onerror = unexpectedErrorCallback; |
58 request.onsuccess = function h3OpenSuccess(evt) { | 58 request.onsuccess = function h3OpenSuccess(evt) { |
59 preamble(evt); | 59 preamble(evt); |
60 h3 = event.target.result; | 60 h3 = event.target.result; |
61 shouldBeTrue("upgradeComplete"); | |
62 shouldBeFalse("deleteDatabaseBlockedEventFired"); | |
63 shouldBeFalse("deleteDatabaseComplete"); | |
61 evalAndLog("h3.close()"); | 64 evalAndLog("h3.close()"); |
62 }; | 65 }; |
63 request.onblocked = function h3Blocked(evt) { | 66 request.onblocked = function h3Blocked(evt) { |
64 preamble(evt); | 67 preamble(evt); |
65 evalAndLog("setVersionBlockedEventFired = true"); | 68 evalAndLog("openWithUpgradeBlockedEventFired = true"); |
66 | 69 |
67 debug("Try to open h4:"); | 70 debug(''); |
71 debug("Open h4:"); | |
68 request = evalAndLog("indexedDB.open(dbname)"); | 72 request = evalAndLog("indexedDB.open(dbname)"); |
69 request.onblocked = unexpectedBlockedCallback; | 73 request.onblocked = unexpectedBlockedCallback; |
70 request.onerror = unexpectedErrorCallback; | 74 request.onerror = unexpectedErrorCallback; |
71 request.onsuccess = function h4OpenSuccess(evt) { | 75 request.onsuccess = function h4OpenSuccess(evt) { |
72 preamble(evt); | 76 preamble(evt); |
73 h4 = event.target.result; | 77 h4 = event.target.result; |
74 h4.onversionchange = unexpectedVersionChangeCallback; | 78 h4.onversionchange = unexpectedVersionChangeCallback; |
75 | 79 |
76 shouldBeTrue("setVersionBlockedEventFired"); | |
77 shouldBeTrue("versionChangeComplete"); | |
78 shouldBeTrue("deleteDatabaseBlockedEventFired"); | 80 shouldBeTrue("deleteDatabaseBlockedEventFired"); |
79 shouldBeTrue("deleteDatabaseComplete"); | 81 shouldBeTrue("deleteDatabaseComplete"); |
80 | 82 |
81 finishJSTest(); | 83 finishJSTest(); |
82 }; | 84 }; |
83 | 85 |
86 debug(''); | |
87 debug('Close connections to unblock previous requests:'); | |
88 evalAndLog("h1.close()"); | |
84 evalAndLog("h2.close()"); | 89 evalAndLog("h2.close()"); |
85 }; | 90 }; |
86 request.onupgradeneeded = function h3OnUpgradeneeded(evt) { | 91 request.onupgradeneeded = function h3OnUpgradeneeded(evt) { |
87 preamble(evt); | 92 preamble(evt); |
88 | 93 |
89 transaction = event.target.transaction; | 94 transaction = event.target.transaction; |
90 transaction.onabort = unexpectedAbortCallback; | 95 transaction.onabort = unexpectedAbortCallback; |
91 transaction.oncomplete = function transactionOnComplete(evt) { | 96 transaction.oncomplete = function transactionOnComplete(evt) { |
92 preamble(evt); | 97 preamble(evt); |
93 evalAndLog("versionChangeComplete = true"); | 98 evalAndLog("upgradeComplete = true"); |
94 }; | 99 }; |
95 }; | 100 }; |
96 | 101 |
102 debug('... and deleteDatabase()'); | |
97 request = evalAndLog("indexedDB.deleteDatabase(dbname)"); | 103 request = evalAndLog("indexedDB.deleteDatabase(dbname)"); |
98 request.onerror = unexpectedErrorCallback; | 104 request.onerror = unexpectedErrorCallback; |
99 request.onblocked = function deleteDatabaseOnBlocked(evt) { | 105 request.onblocked = function deleteDatabaseOnBlocked(evt) { |
100 preamble(evt); | 106 preamble(evt); |
101 evalAndLog("deleteDatabaseBlockedEventFired = true"); | 107 evalAndLog("deleteDatabaseBlockedEventFired = true"); |
102 | |
103 evalAndLog("h1.close()"); | |
104 }; | 108 }; |
105 request.onsuccess = function deleteDatabaseOnSuccess(evt) { | 109 request.onsuccess = function deleteDatabaseOnSuccess(evt) { |
106 preamble(evt); | 110 preamble(evt); |
107 evalAndLog("deleteDatabaseComplete = true"); | 111 evalAndLog("deleteDatabaseComplete = true"); |
112 shouldBeTrue("openWithUpgradeBlockedEventFired"); | |
113 shouldBeTrue("upgradeComplete"); | |
114 evalAndLog("deleteDatabaseBlockedEventFired = true"); | |
108 }; | 115 }; |
109 }; | 116 }; |
110 } | 117 } |
OLD | NEW |