OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 window.indexedDB = window.indexedDB || window.webkitIndexedDB; | 5 function test() |
6 | |
7 function unexpectedErrorCallback() | |
8 { | 6 { |
9 document.title = 'fail - unexpected error callback'; | |
10 } | |
11 function unexpectedAbortCallback() | |
12 { | |
13 document.title = 'fail - unexpected abort callback'; | |
14 } | |
15 function unexpectedCompleteCallback() | |
16 { | |
17 document.title = 'fail - unexpected complete callback'; | |
18 } | |
19 | |
20 function test() { | |
21 if (document.location.hash === '#tab1') { | 7 if (document.location.hash === '#tab1') { |
22 prepareDatabase(0, function () { doSetVersion(1); }); | 8 prepareDatabase(0, function () { doSetVersion(1); }); |
23 } else if (document.location.hash === '#tab2') { | 9 } else if (document.location.hash === '#tab2') { |
24 doSetVersion(2); | 10 doSetVersion(2); |
25 } else { | 11 } else { |
26 document.title = 'fail'; | 12 result('fail - unexpected hash'); |
27 } | 13 } |
28 } | 14 } |
29 | 15 |
30 function prepareDatabase(version, callback) { | 16 function prepareDatabase(version, callback) |
| 17 { |
31 // Prepare the database, then exit normally | 18 // Prepare the database, then exit normally |
32 | |
33 var delreq = window.indexedDB.deleteDatabase('version-change-blocked'); | 19 var delreq = window.indexedDB.deleteDatabase('version-change-blocked'); |
34 delreq.onerror = unexpectedErrorCallback; | 20 delreq.onerror = unexpectedErrorCallback; |
35 delreq.onsuccess = function() { | 21 delreq.onsuccess = function() { |
36 var openreq = window.indexedDB.open('version-change-blocked'); | 22 var openreq = window.indexedDB.open('version-change-blocked'); |
37 openreq.onerror = unexpectedErrorCallback; | 23 openreq.onerror = unexpectedErrorCallback; |
38 openreq.onsuccess = function(e) { | 24 openreq.onsuccess = function(e) { |
39 var db = openreq.result; | 25 var db = openreq.result; |
40 var setverreq = db.setVersion(String(version)); | 26 var setverreq = db.setVersion(String(version)); |
41 setverreq.onerror = unexpectedErrorCallback; | 27 setverreq.onerror = unexpectedErrorCallback; |
42 setverreq.onsuccess = function(e) { | 28 setverreq.onsuccess = function(e) { |
43 var transaction = setverreq.result; | 29 var transaction = setverreq.result; |
44 transaction.onabort = unexpectedAbortCallback; | 30 transaction.onabort = unexpectedAbortCallback; |
45 transaction.oncomplete = function (e) { | 31 transaction.oncomplete = function (e) { |
46 db.close(); | 32 db.close(); |
47 callback(); | 33 callback(); |
48 }; | 34 }; |
49 }; | 35 }; |
50 }; | 36 }; |
51 }; | 37 }; |
52 } | 38 } |
53 | 39 |
54 function doSetVersion(version) { | 40 function doSetVersion(version) |
| 41 { |
55 // Open the database and try a setVersion | 42 // Open the database and try a setVersion |
56 var openreq = window.indexedDB.open('version-change-blocked'); | 43 var openreq = window.indexedDB.open('version-change-blocked'); |
57 openreq.onerror = unexpectedErrorCallback; | 44 openreq.onerror = unexpectedErrorCallback; |
58 openreq.onsuccess = function(e) { | 45 openreq.onsuccess = function(e) { |
59 window.db = openreq.result; | 46 window.db = openreq.result; |
60 var setverreq = window.db.setVersion(String(version)); | 47 var setverreq = window.db.setVersion(String(version)); |
61 setverreq.onerror = unexpectedErrorCallback; | 48 setverreq.onerror = unexpectedErrorCallback; |
62 setverreq.onblocked = function(e) { | 49 setverreq.onblocked = function(e) { |
63 document.title = 'setVersion(' + version + ') blocked'; | 50 result('setVersion(' + version + ') blocked'); |
64 }; | 51 }; |
65 setverreq.onsuccess = function(e) { | 52 setverreq.onsuccess = function(e) { |
66 document.title = 'setVersion(' + version + ') complete'; | 53 result('setVersion(' + version + ') complete'); |
67 }; | 54 }; |
68 }; | 55 }; |
69 } | 56 } |
OLD | NEW |