Wed, 31 Dec 2014 06:55:50 +0100
Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2
1 <!DOCTYPE html>
2 <html>
3 <body>
4 foobar!
5 </body>
6 <script>
7 var data = [
8 { id: "0", name: "foo" },
9 ];
11 var action = window.location.search.substring(1);
12 var finished = false;
13 var created = false; // We use that for 'read-no' action.
15 function finish(value) {
16 value ? alert('success') : alert('failure');
17 finished = true;
18 }
20 var request = window.indexedDB.open('AppIsolationTest');
22 request.onupgradeneeded = function(event) {
23 if (finished) {
24 finish(false);
25 return;
26 }
28 switch (action) {
29 case 'read-no':
30 created = true;
31 break;
32 case 'read-yes':
33 finish(false);
34 break;
35 case 'write':
36 created = true;
38 var db = event.target.result;
40 var objectStore = db.createObjectStore("test", { keyPath: "id" });
41 for (var i in data) {
42 objectStore.add(data[i]);
43 }
44 break;
45 }
46 }
48 request.onsuccess = function(event) {
49 if (finished) {
50 finish(false);
51 return;
52 }
54 var db = event.target.result;
56 // Think about close the db!
57 switch (action) {
58 case 'read-no':
59 db.close();
61 if (created) { // That means we have created it.
62 indexedDB.deleteDatabase('AppIsolationTest').onsuccess = function() {
63 finish(true);
64 };
65 } else {
66 finish(false);
67 }
68 break;
69 case 'read-yes':
70 db.transaction("test").objectStore("test").get("0").onsuccess = function(event) {
71 var name = event.target.result.name;
72 db.close();
74 indexedDB.deleteDatabase('AppIsolationTest').onsuccess = function() {
75 finish(name == 'foo');
76 };
77 };
78 break;
79 case 'write':
80 db.close();
82 // Success only if the db was actually created.
83 finish(created);
84 break;
85 }
86 };
87 </script>
88 </html>