OLD | NEW |
---|---|
(Empty) | |
1 // Imported from: | |
2 // * http://mxr.mozilla.org/mozilla-central/source/dom/indexedDB/test/unit/test_ getAll.js?force=1 | |
cmumford
2015/08/25 20:22:30
What do you think about changing force to raw?
jsbell
2015/08/25 20:45:06
I'll just drop the query string entirely. (The ?fo
| |
3 // Changes: | |
4 // * added 'use strict' since some ES6 features NYI w/o it | |
5 // * function -> function* | |
6 // * this.window -> window | |
7 // * testGenerator.send() -> testGenerator.next() | |
cmumford
2015/08/25 20:22:30
You didn't add testGenerator.send() -> testGenerat
jsbell
2015/08/25 20:45:06
Removed.
| |
8 // * Added deleteDatabase() step to reset storage state | |
9 | |
10 'use strict'; | |
11 /** | |
12 * Any copyright is dedicated to the Public Domain. | |
13 * http://creativecommons.org/publicdomain/zero/1.0/ | |
14 */ | |
15 | |
16 var testGenerator = testSteps(); | |
17 | |
18 function* testSteps() | |
19 { | |
20 const name = window ? window.location.pathname : "Splendid Test"; | |
21 indexedDB.deleteDatabase(name); | |
22 | |
23 const values = [ "a", "1", 1, "foo", 300, true, false, 4.5, null ]; | |
24 | |
25 let request = indexedDB.open(name, 1); | |
26 request.onerror = errorHandler; | |
27 request.onupgradeneeded = grabEventAndContinueHandler; | |
28 let event = yield undefined; | |
29 let db = event.target.result; | |
30 | |
31 let objectStore = db.createObjectStore("foo", { autoIncrement: true }); | |
32 | |
33 request.onsuccess = grabEventAndContinueHandler; | |
34 request = objectStore.mozGetAll(); | |
35 request.onerror = errorHandler; | |
36 request.onsuccess = grabEventAndContinueHandler; | |
37 event = yield undefined; | |
38 | |
39 is(event.target.result instanceof Array, true, "Got an array object"); | |
40 is(event.target.result.length, 0, "No elements"); | |
41 | |
42 let addedCount = 0; | |
43 | |
44 for (let i in values) { | |
45 request = objectStore.add(values[i]); | |
46 request.onerror = errorHandler; | |
47 request.onsuccess = function(event) { | |
48 if (++addedCount == values.length) { | |
49 executeSoon(function() { testGenerator.next(); }); | |
50 } | |
51 } | |
52 } | |
53 yield undefined; | |
54 yield undefined; | |
55 | |
56 request = db.transaction("foo").objectStore("foo").mozGetAll(); | |
57 request.onerror = errorHandler; | |
58 request.onsuccess = grabEventAndContinueHandler; | |
59 event = yield undefined; | |
60 | |
61 is(event.target.result instanceof Array, true, "Got an array object"); | |
62 is(event.target.result.length, values.length, "Same length"); | |
63 | |
64 for (let i in event.target.result) { | |
65 is(event.target.result[i], values[i], "Same value"); | |
66 } | |
67 | |
68 request = db.transaction("foo").objectStore("foo").mozGetAll(null, 5); | |
69 request.onerror = errorHandler; | |
70 request.onsuccess = grabEventAndContinueHandler; | |
71 event = yield undefined; | |
72 | |
73 is(event.target.result instanceof Array, true, "Got an array object"); | |
74 is(event.target.result.length, 5, "Correct length"); | |
75 | |
76 for (let i in event.target.result) { | |
77 is(event.target.result[i], values[i], "Same value"); | |
78 } | |
79 | |
80 let keyRange = IDBKeyRange.bound(1, 9); | |
81 | |
82 request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange); | |
83 request.onerror = errorHandler; | |
84 request.onsuccess = grabEventAndContinueHandler; | |
85 event = yield undefined; | |
86 | |
87 is(event.target.result instanceof Array, true, "Got an array object"); | |
88 is(event.target.result.length, values.length, "Correct length"); | |
89 | |
90 for (let i in event.target.result) { | |
91 is(event.target.result[i], values[i], "Same value"); | |
92 } | |
93 | |
94 request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, 0); | |
95 request.onerror = errorHandler; | |
96 request.onsuccess = grabEventAndContinueHandler; | |
97 event = yield undefined; | |
98 | |
99 is(event.target.result instanceof Array, true, "Got an array object"); | |
100 is(event.target.result.length, values.length, "Correct length"); | |
101 | |
102 for (let i in event.target.result) { | |
103 is(event.target.result[i], values[i], "Same value"); | |
104 } | |
105 | |
106 request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, null); | |
107 request.onerror = errorHandler; | |
108 request.onsuccess = grabEventAndContinueHandler; | |
109 event = yield undefined; | |
110 | |
111 is(event.target.result instanceof Array, true, "Got an array object"); | |
112 is(event.target.result.length, values.length, "Correct length"); | |
113 | |
114 for (let i in event.target.result) { | |
115 is(event.target.result[i], values[i], "Same value"); | |
116 } | |
117 | |
118 request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, undefin ed); | |
119 request.onerror = errorHandler; | |
120 request.onsuccess = grabEventAndContinueHandler; | |
121 event = yield undefined; | |
122 | |
123 is(event.target.result instanceof Array, true, "Got an array object"); | |
124 is(event.target.result.length, values.length, "Correct length"); | |
125 | |
126 for (let i in event.target.result) { | |
127 is(event.target.result[i], values[i], "Same value"); | |
128 } | |
129 | |
130 keyRange = IDBKeyRange.bound(4, 7); | |
131 | |
132 request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange); | |
133 request.onerror = errorHandler; | |
134 request.onsuccess = grabEventAndContinueHandler; | |
135 event = yield undefined; | |
136 | |
137 is(event.target.result instanceof Array, true, "Got an array object"); | |
138 is(event.target.result.length, 4, "Correct length"); | |
139 | |
140 for (let i in event.target.result) { | |
141 is(event.target.result[i], values[parseInt(i) + 3], "Same value"); | |
142 } | |
143 | |
144 // Get should take a key range also but it doesn't return an array. | |
145 request = db.transaction("foo").objectStore("foo").get(keyRange); | |
146 request.onerror = errorHandler; | |
147 request.onsuccess = grabEventAndContinueHandler; | |
148 event = yield undefined; | |
149 | |
150 is(event.target.result instanceof Array, false, "Not an array object"); | |
151 is(event.target.result, values[3], "Correct value"); | |
152 | |
153 request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, 2); | |
154 request.onerror = errorHandler; | |
155 request.onsuccess = grabEventAndContinueHandler; | |
156 event = yield undefined; | |
157 | |
158 is(event.target.result instanceof Array, true, "Got an array object"); | |
159 is(event.target.result.length, 2, "Correct length"); | |
160 | |
161 for (let i in event.target.result) { | |
162 is(event.target.result[i], values[parseInt(i) + 3], "Same value"); | |
163 } | |
164 | |
165 keyRange = IDBKeyRange.bound(4, 7); | |
166 | |
167 request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, 50); | |
168 request.onerror = errorHandler; | |
169 request.onsuccess = grabEventAndContinueHandler; | |
170 event = yield undefined; | |
171 | |
172 is(event.target.result instanceof Array, true, "Got an array object"); | |
173 is(event.target.result.length, 4, "Correct length"); | |
174 | |
175 for (let i in event.target.result) { | |
176 is(event.target.result[i], values[parseInt(i) + 3], "Same value"); | |
177 } | |
178 | |
179 keyRange = IDBKeyRange.bound(4, 7); | |
180 | |
181 request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, 0); | |
182 request.onerror = errorHandler; | |
183 request.onsuccess = grabEventAndContinueHandler; | |
184 event = yield undefined; | |
185 | |
186 is(event.target.result instanceof Array, true, "Got an array object"); | |
187 is(event.target.result.length, 4, "Correct length"); | |
188 | |
189 keyRange = IDBKeyRange.bound(4, 7, true, true); | |
190 | |
191 request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange); | |
192 request.onerror = errorHandler; | |
193 request.onsuccess = grabEventAndContinueHandler; | |
194 event = yield undefined; | |
195 | |
196 is(event.target.result instanceof Array, true, "Got an array object"); | |
197 is(event.target.result.length, 2, "Correct length"); | |
198 | |
199 for (let i in event.target.result) { | |
200 is(event.target.result[i], values[parseInt(i) + 4], "Same value"); | |
201 } | |
202 | |
203 finishTest(); | |
204 yield undefined; | |
205 } | |
OLD | NEW |