dom/indexedDB/test/webapp_clearBrowserData_browserFrame.html

changeset 2
7e26c7da4463
equal deleted inserted replaced
-1:000000000000 0:a8c3c23a9be3
1 <!--
2 Any copyright is dedicated to the Public Domain.
3 http://creativecommons.org/publicdomain/zero/1.0/
4 -->
5 <html>
6 <head>
7 <title>Indexed Database Clear Browser Data Test</title>
8
9 <script type="text/javascript;version=1.7">
10 "use strict";
11
12 function ok(cond, message)
13 {
14 alert(JSON.stringify({ type: "ok",
15 args: [!!cond, "browserFrame: " + message] }));
16 }
17
18 function info(message)
19 {
20 alert(JSON.stringify({ type: "info",
21 args: ["browserFrame: " + message] }));
22 }
23
24 function block()
25 {
26 info("about to block");
27
28 // This will block until the parent has cleared our database.
29 alert(JSON.stringify({ type: "block" }));
30
31 info("unblocked");
32 }
33
34 function finish()
35 {
36 alert(JSON.stringify({ type: "done" }));
37 }
38
39 window.onerror = ok.bind(window, false);
40
41 function testSteps()
42 {
43 const objectStoreName = "foo";
44 const testKey = 1;
45 const testValue = objectStoreName;
46 const dbName = window.location.pathname + window.location.search;
47
48 let request = indexedDB.open(dbName, 1);
49 request.onerror = errorHandler;
50 request.onupgradeneeded = grabEventAndContinueHandler;
51 request.onsuccess = unexpectedSuccessHandler;
52 let event = yield undefined;
53
54 let db = event.target.result;
55 db.onerror = errorHandler;
56 db.onversionchange = function(event) {
57 event.target.close();
58 }
59
60 let objectStore = db.createObjectStore(objectStoreName);
61 objectStore.add(testValue, testKey);
62
63 request.onsuccess = grabEventAndContinueHandler;
64 event = yield undefined;
65
66 ok(db === event.target.result, "created database");
67
68 objectStore =
69 db.transaction(objectStoreName).objectStore(objectStoreName);
70 objectStore.get(testKey).onsuccess = grabEventAndContinueHandler;
71 event = yield undefined;
72
73 ok(testValue == event.target.result, "data exists");
74
75 block();
76
77 request = indexedDB.open(dbName, 1);
78 request.onerror = errorHandler;
79 request.onupgradeneeded = grabEventAndContinueHandler;
80 request.onsuccess = unexpectedSuccessHandler;
81 event = yield undefined;
82
83 ok(event.type == "upgradeneeded", "db doesn't exist");
84
85 request.onsuccess = grabEventAndContinueHandler;
86 event = yield undefined;
87
88 db = event.target.result;
89 info(db.objectStoreNames.length);
90 ok(!db.objectStoreNames.length, "no object stores");
91
92 finish();
93
94 yield undefined;
95 }
96
97 </script>
98
99 <script type="text/javascript;version=1.7" src="helpers.js"></script>
100 </head>
101
102 <body onload="testGenerator.next();"></body>
103
104 </html>

mercurial