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 removeVendorPrefixes(); | 10 removeVendorPrefixes(); |
11 setDBNameFromPath(); | 11 setDBNameFromPath(); |
12 | 12 |
13 request = evalAndLog("indexedDB.deleteDatabase(dbname)"); | 13 request = evalAndLog("indexedDB.deleteDatabase(dbname)"); |
14 request.onsuccess = initiallyDeleted; | 14 request.onsuccess = initiallyDeleted; |
15 request.onerror = unexpectedErrorCallback; | 15 request.onerror = unexpectedErrorCallback; |
16 } | 16 } |
17 | 17 |
18 var sawUpgradeNeeded = false; | 18 var sawUpgradeNeeded = false; |
19 var sawVersionChange = false; | 19 var sawVersionChange = false; |
20 var sawDeleteBlocked = false; | 20 var sawDeleteBlocked = false; |
| 21 var sawOpenError = false; |
21 | 22 |
22 function initiallyDeleted(evt) { | 23 function initiallyDeleted(evt) { |
23 preamble(evt); | 24 preamble(evt); |
24 evalAndLog("request = indexedDB.open(dbname, 1)"); | 25 evalAndLog("request = indexedDB.open(dbname, 1)"); |
25 request.onupgradeneeded = upgradeNeededCallback; | 26 request.onupgradeneeded = upgradeNeededCallback; |
26 request.onsuccess = unexpectedSuccessCallback; | 27 request.onsuccess = unexpectedSuccessCallback; |
| 28 request.onerror = openError; |
| 29 } |
| 30 |
| 31 function openError(evt) { |
| 32 preamble(evt); |
| 33 shouldBeTrue("sawVersionChange"); |
| 34 evalAndLog("sawOpenError = true"); |
| 35 evt.preventDefault(); |
27 } | 36 } |
28 | 37 |
29 function upgradeNeededCallback(evt) | 38 function upgradeNeededCallback(evt) |
30 { | 39 { |
31 preamble(evt); | 40 preamble(evt); |
32 shouldBeFalse("sawUpgradeNeeded"); | 41 shouldBeFalse("sawUpgradeNeeded"); |
33 evalAndLog("sawUpgradeNeeded = true"); | 42 evalAndLog("sawUpgradeNeeded = true"); |
34 shouldBe("event.oldVersion", "0"); | 43 shouldBe("event.oldVersion", "0"); |
35 shouldBe("event.newVersion", "1"); | 44 shouldBe("event.newVersion", "1"); |
36 | 45 |
(...skipping 18 matching lines...) Expand all Loading... |
55 function deleteBlockedCallback(evt) | 64 function deleteBlockedCallback(evt) |
56 { | 65 { |
57 preamble(evt); | 66 preamble(evt); |
58 shouldBeTrue("sawVersionChange"); | 67 shouldBeTrue("sawVersionChange"); |
59 evalAndLog("sawDeleteBlocked = true"); | 68 evalAndLog("sawDeleteBlocked = true"); |
60 } | 69 } |
61 | 70 |
62 function deleteSuccessCallback(evt) | 71 function deleteSuccessCallback(evt) |
63 { | 72 { |
64 preamble(evt); | 73 preamble(evt); |
65 shouldBeTrue("sawVersionChange"); | 74 shouldBeTrue("sawOpenError"); |
66 debug("FIXME: Blocked events shouldn't fire if connections close in versionc
hange handler. http://crbug.com/100123"); | 75 debug("FIXME: Blocked events shouldn't fire if connections close in versionc
hange handler. http://crbug.com/100123"); |
67 shouldBeFalse("sawDeleteBlocked"); | 76 shouldBeFalse("sawDeleteBlocked"); |
68 shouldBeTrue("sawUpgradeNeeded"); | 77 shouldBeTrue("sawUpgradeNeeded"); |
69 finishJSTest(); | 78 finishJSTest(); |
70 } | 79 } |
71 | 80 |
72 test(); | 81 test(); |
OLD | NEW |