- add sources.
[platform/framework/web/crosswalk.git] / src / content / test / data / indexeddb / version_change_blocked.js
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
3 // found in the LICENSE file.
4
5 function test()
6 {
7   if (document.location.hash === '#tab1') {
8     prepareDatabase(function () { doSetVersion(2); });
9   } else if (document.location.hash === '#tab2') {
10     doSetVersion(3);
11   } else {
12     result('fail - unexpected hash');
13   }
14 }
15
16 function prepareDatabase(callback)
17 {
18   // Prepare the database, then exit normally
19   var delreq = window.indexedDB.deleteDatabase('version-change-blocked');
20   delreq.onerror = unexpectedErrorCallback;
21   delreq.onsuccess = function() {
22     reOpen(callback);
23   };
24 }
25
26 function reOpen(callback)
27 {
28   request = indexedDB.open('version-change-blocked');
29   request.onerror = unexpectedErrorCallback;
30   request.onblocked = unexpectedBlockedCallback;
31   request.onupgradeneeded = function() {
32     db = event.target.result;
33     db.createObjectStore("someobjectstore");
34   };
35   request.onsuccess = function() {
36     db.close();
37     callback();
38   };
39 }
40
41 function doSetVersion(version)
42 {
43   // Open the database and try a setVersion
44   var openreq = window.indexedDB.open('version-change-blocked', version);
45   openreq.onerror = unexpectedErrorCallback;
46   var upgradeneededComplete = false;
47   openreq.onblocked = function(e) {
48     result('setVersion(' + version + ') blocked');
49   };
50   openreq.onupgradeneeded = function(e) {
51     openreq.transaction.oncomplete = function(e2) {
52       result('setVersion(' + version + ') complete');
53     };
54   };
55 }