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 that a deleteDatabase called while handling an upgradeneeded e
vent is queued and fires its events at the right time. The close() call to unblo
ck the delete occurs in the connection's 'versionchange' event handler."); | 6 description("Test that a deleteDatabase called while handling an upgradeneeded e
vent is queued and fires its events at the right time. The close() call to unblo
ck the delete occurs in the connection's 'versionchange' event handler."); |
7 | 7 |
8 function test() | 8 function test() |
9 { | 9 { |
10 setDBNameFromPath(); | 10 setDBNameFromPath(); |
11 | 11 |
12 request = evalAndLog("indexedDB.deleteDatabase(dbname)"); | 12 request = evalAndLog("indexedDB.deleteDatabase(dbname)"); |
13 request.onsuccess = initiallyDeleted; | 13 request.onsuccess = initiallyDeleted; |
14 request.onerror = unexpectedErrorCallback; | 14 request.onerror = unexpectedErrorCallback; |
15 } | 15 } |
16 | 16 |
17 var sawUpgradeNeeded = false; | 17 var sawUpgradeNeeded = false; |
18 var sawVersionChange = false; | 18 var sawVersionChange = false; |
| 19 var sawOpenError = false; |
19 | 20 |
20 function initiallyDeleted(evt) { | 21 function initiallyDeleted(evt) { |
21 preamble(evt); | 22 preamble(evt); |
22 evalAndLog("request = indexedDB.open(dbname, 1)"); | 23 evalAndLog("request = indexedDB.open(dbname, 1)"); |
23 request.onupgradeneeded = upgradeNeededCallback; | 24 request.onupgradeneeded = upgradeNeededCallback; |
24 request.onsuccess = unexpectedSuccessCallback; | 25 request.onsuccess = unexpectedSuccessCallback; |
| 26 request.onerror = openError; |
| 27 } |
| 28 |
| 29 function openError(evt) { |
| 30 preamble(evt); |
| 31 shouldBeTrue("sawVersionChange"); |
| 32 evalAndLog("sawOpenError = true"); |
| 33 evt.preventDefault(); |
25 } | 34 } |
26 | 35 |
27 function upgradeNeededCallback(evt) | 36 function upgradeNeededCallback(evt) |
28 { | 37 { |
29 preamble(evt); | 38 preamble(evt); |
30 shouldBeFalse("sawUpgradeNeeded"); | 39 shouldBeFalse("sawUpgradeNeeded"); |
31 evalAndLog("sawUpgradeNeeded = true"); | 40 evalAndLog("sawUpgradeNeeded = true"); |
32 shouldBe("event.oldVersion", "0"); | 41 shouldBe("event.oldVersion", "0"); |
33 shouldBe("event.newVersion", "1"); | 42 shouldBe("event.newVersion", "1"); |
34 | 43 |
(...skipping 12 matching lines...) Expand all Loading... |
47 evalAndLog("sawVersionChange = true"); | 56 evalAndLog("sawVersionChange = true"); |
48 | 57 |
49 debug("Closing the connection before the IDBOpenDBRequest's success fires wi
ll cause the open to fail."); | 58 debug("Closing the connection before the IDBOpenDBRequest's success fires wi
ll cause the open to fail."); |
50 evalAndLog("db.close()"); | 59 evalAndLog("db.close()"); |
51 } | 60 } |
52 | 61 |
53 function deleteSuccessCallback(evt) | 62 function deleteSuccessCallback(evt) |
54 { | 63 { |
55 preamble(evt); | 64 preamble(evt); |
56 shouldBeTrue("sawVersionChange"); | 65 shouldBeTrue("sawVersionChange"); |
| 66 shouldBeTrue("sawOpenError"); |
57 shouldBeTrue("sawUpgradeNeeded"); | 67 shouldBeTrue("sawUpgradeNeeded"); |
58 finishJSTest(); | 68 finishJSTest(); |
59 } | 69 } |
60 | 70 |
61 test(); | 71 test(); |
OLD | NEW |