- add sources.
[platform/framework/web/crosswalk.git] / src / content / test / data / indexeddb / bug_90635.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 === '#part1') {
8     testPart1();
9   } else if (document.location.hash === '#part2') {
10     testPart2();
11   } else {
12     result('fail - unexpected hash');
13   }
14 }
15
16 function testPart1()
17 {
18   var delreq = window.indexedDB.deleteDatabase('bug90635');
19   delreq.onerror = unexpectedErrorCallback;
20   delreq.onsuccess = function() {
21     var openreq = window.indexedDB.open('bug90635', 1);
22     openreq.onerror = unexpectedErrorCallback;
23     openreq.onblocked = unexpectedBlockedCallback;
24     openreq.onupgradeneeded = function(e) {
25       db = openreq.result;
26       var transaction = openreq.transaction;
27       transaction.onabort = unexpectedAbortCallback;
28
29       db.createObjectStore('store1');
30       db.createObjectStore('store2', {keyPath: ''});
31       db.createObjectStore('store3', {keyPath: 'some_path'});
32     };
33     openreq.onsuccess = function() {
34       test_store(db, 'first run');
35     };
36   };
37 }
38
39 function testPart2()
40 {
41   var openreq = window.indexedDB.open('bug90635');
42   openreq.onerror = unexpectedErrorCallback;
43   openreq.onsuccess = function(e) {
44     var db = openreq.result;
45     test_store(db, 'second run');
46   };
47 }
48
49 function test_store(db, msg) {
50   var transaction = db.transaction(['store1', 'store2', 'store3'], 'readonly');
51   var store1 = transaction.objectStore('store1');
52   var store2 = transaction.objectStore('store2');
53   var store3 = transaction.objectStore('store3');
54
55   if (store1.keyPath !== null ||
56       store2.keyPath !== '' ||
57       store3.keyPath !== 'some_path') {
58     result('fail - ' + msg);
59   } else {
60     result('pass - ' + msg);
61   }
62 }