Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(201)

Side by Side Diff: LayoutTests/storage/indexeddb/mozilla/resources/test_getAll.js

Issue 1312983006: Import Mozilla's IndexedDB getAll/getAllKeys tests (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Comment update/whitespace Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Imported from:
2 // * http://mxr.mozilla.org/mozilla-central/source/dom/indexedDB/test/unit/test_ getAll.js
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()
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698