dom/indexedDB/test/file_app_isolation.html

changeset 2
7e26c7da4463
equal deleted inserted replaced
-1:000000000000 0:340e45aae0ab
1 <!DOCTYPE html>
2 <html>
3 <body>
4 foobar!
5 </body>
6 <script>
7 var data = [
8 { id: "0", name: "foo" },
9 ];
10
11 var action = window.location.search.substring(1);
12 var finished = false;
13 var created = false; // We use that for 'read-no' action.
14
15 function finish(value) {
16 value ? alert('success') : alert('failure');
17 finished = true;
18 }
19
20 var request = window.indexedDB.open('AppIsolationTest');
21
22 request.onupgradeneeded = function(event) {
23 if (finished) {
24 finish(false);
25 return;
26 }
27
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;
37
38 var db = event.target.result;
39
40 var objectStore = db.createObjectStore("test", { keyPath: "id" });
41 for (var i in data) {
42 objectStore.add(data[i]);
43 }
44 break;
45 }
46 }
47
48 request.onsuccess = function(event) {
49 if (finished) {
50 finish(false);
51 return;
52 }
53
54 var db = event.target.result;
55
56 // Think about close the db!
57 switch (action) {
58 case 'read-no':
59 db.close();
60
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();
73
74 indexedDB.deleteDatabase('AppIsolationTest').onsuccess = function() {
75 finish(name == 'foo');
76 };
77 };
78 break;
79 case 'write':
80 db.close();
81
82 // Success only if the db was actually created.
83 finish(created);
84 break;
85 }
86 };
87 </script>
88 </html>

mercurial