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

Side by Side Diff: third_party/WebKit/LayoutTests/imported/web-platform-tests/IndexedDB/idbindex_getAll.html

Issue 1419013007: update-w3c-deps import using blink 83a52878976eaffc8753993a7689c9c178664fba: (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <title>IndexedDB: Test IDBIndex.getAll.</title> 2 <title>IndexedDB: Test IDBIndex.getAll.</title>
3 <script src="../../resources/testharness.js"></script> 3 <script src="../../../resources/testharness.js"></script>
4 <script src="../../resources/testharnessreport.js"></script> 4 <script src="../../../resources/testharnessreport.js"></script>
5 <script> 5 <script>
6 setup({explicit_done: true});
6 7
7 var alphabet = 'abcdefghijklmnopqrstuvwxyz'.split(''); 8 var alphabet = 'abcdefghijklmnopqrstuvwxyz'.split('');
8 var ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''); 9 var ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
9 10
10 function doSetup(dbName, dbVersion, onsuccess) { 11 function doSetup(dbName, dbVersion, onsuccess) {
11 var delete_request = indexedDB.deleteDatabase(dbName); 12 var delete_request = indexedDB.deleteDatabase(dbName);
12 delete_request.onerror = function() { 13 delete_request.onerror = function() {
13 assert_unreached('deleteDatabase should not fail'); 14 assert_unreached('deleteDatabase should not fail');
14 }; 15 };
15 delete_request.onsuccess = function(e) { 16 delete_request.onsuccess = function(e) {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 store = connection.createObjectStore('empty', null); 62 store = connection.createObjectStore('empty', null);
62 index = store.createIndex('test_idx', 'upper'); 63 index = store.createIndex('test_idx', 'upper');
63 }; 64 };
64 }; 65 };
65 } 66 }
66 67
67 function createGetAllRequest(t, storeName, connection, range, maxCount) { 68 function createGetAllRequest(t, storeName, connection, range, maxCount) {
68 var transaction = connection.transaction(storeName, 'readonly'); 69 var transaction = connection.transaction(storeName, 'readonly');
69 var store = transaction.objectStore(storeName); 70 var store = transaction.objectStore(storeName);
70 var index = store.index('test_idx'); 71 var index = store.index('test_idx');
71 // TODO(cmumford): Simplify once crbug.com/335871 is fixed. 72 var req = index.getAll(range, maxCount);
72 var req = maxCount !== undefined ? index.getAll(range, maxCount) :
73 range !== undefined ? index.getAll(range) : index.getAll();
74 req.onerror = t.unreached_func('getAll request should succeed'); 73 req.onerror = t.unreached_func('getAll request should succeed');
75 return req; 74 return req;
76 } 75 }
77 76
78 doSetup(location.pathname + '-IDBIndex.getAll', 1, function(evt) { 77 doSetup(location.pathname + '-IDBIndex.getAll', 1, function(evt) {
79 var connection = evt.target.result; 78 var connection = evt.target.result;
80 async_test(function(t) { 79 async_test(function(t) {
81 var req = createGetAllRequest(t, 'out-of-line', connection, 'C'); 80 var req = createGetAllRequest(t, 'out-of-line', connection, 'C');
82 req.onsuccess = t.step_func(function(evt) { 81 req.onsuccess = t.step_func(function(evt) {
83 var data = evt.target.result; 82 var data = evt.target.result;
84 assert_class_string(data, 'Array', 'result should be an array'); 83 assert_class_string(data, 'Array', 'result should be an array');
85 assert_array_equals(data.map(e => e.ch), ['c']); 84 assert_array_equals(data.map(function(e) { return e.ch; }), ['c']);
86 assert_array_equals(data.map(e => e.upper), ['C']); 85 assert_array_equals(data.map(function(e) { return e.upper; }), ['C']);
87 t.done(); 86 t.done();
88 }); 87 });
89 }, 'Single item get'); 88 }, 'Single item get');
90 89
91 async_test(function(t) { 90 async_test(function(t) {
92 var req = createGetAllRequest(t, 'empty', connection); 91 var req = createGetAllRequest(t, 'empty', connection);
93 req.onsuccess = t.step_func(function(evt) { 92 req.onsuccess = t.step_func(function(evt) {
94 assert_array_equals(evt.target.result, [], 93 assert_array_equals(evt.target.result, [],
95 'getAll() on empty object store should return an empty array'); 94 'getAll() on empty object store should return an empty array');
96 t.done(); 95 t.done();
97 }); 96 });
98 }, 'Empty object store'); 97 }, 'Empty object store');
99 98
100 async_test(function(t) { 99 async_test(function(t) {
101 var req = createGetAllRequest(t, 'out-of-line', connection); 100 var req = createGetAllRequest(t, 'out-of-line', connection);
102 req.onsuccess = t.step_func(function(evt) { 101 req.onsuccess = t.step_func(function(evt) {
103 var data = evt.target.result; 102 var data = evt.target.result;
104 assert_class_string(data, 'Array', 'result should be an array'); 103 assert_class_string(data, 'Array', 'result should be an array');
105 assert_array_equals(data.map(e => e.ch), alphabet); 104 assert_array_equals(data.map(function(e) { return e.ch; }), alphabet);
106 assert_array_equals(data.map(e => e.upper), ALPHABET); 105 assert_array_equals(data.map(function(e) { return e.upper; }), ALPHABE T);
107 t.done(); 106 t.done();
108 }); 107 });
109 }, 'Get all keys'); 108 }, 'Get all keys');
110 109
111 async_test(function(t) { 110 async_test(function(t) {
112 var req = createGetAllRequest(t, 'out-of-line', connection, undefined, 111 var req = createGetAllRequest(t, 'out-of-line', connection, undefined,
113 10); 112 10);
114 req.onsuccess = t.step_func(function(evt) { 113 req.onsuccess = t.step_func(function(evt) {
115 var data = evt.target.result; 114 var data = evt.target.result;
116 assert_class_string(data, 'Array', 'result should be an array'); 115 assert_class_string(data, 'Array', 'result should be an array');
117 assert_array_equals(data.map(e => e.ch), 'abcdefghij'.split('')); 116 assert_array_equals(data.map(function(e) { return e.ch; }), 'abcdefghi j'.split(''));
118 assert_array_equals(data.map(e => e.upper), 'ABCDEFGHIJ'.split('')); 117 assert_array_equals(data.map(function(e) { return e.upper; }), 'ABCDEF GHIJ'.split(''));
119 t.done(); 118 t.done();
120 }); 119 });
121 }, 'maxCount=10'); 120 }, 'maxCount=10');
122 121
123 async_test(function(t) { 122 async_test(function(t) {
124 var req = createGetAllRequest(t, 'out-of-line', connection, 123 var req = createGetAllRequest(t, 'out-of-line', connection,
125 IDBKeyRange.bound('G', 'M')); 124 IDBKeyRange.bound('G', 'M'));
126 req.onsuccess = t.step_func(function(evt) { 125 req.onsuccess = t.step_func(function(evt) {
127 var data = evt.target.result; 126 var data = evt.target.result;
128 assert_array_equals(data.map(e => e.ch), 'ghijklm'.split('')); 127 assert_array_equals(data.map(function(e) { return e.ch; }), 'ghijklm'. split(''));
129 assert_array_equals(data.map(e => e.upper), 'GHIJKLM'.split('')); 128 assert_array_equals(data.map(function(e) { return e.upper; }), 'GHIJKL M'.split(''));
130 t.done(); 129 t.done();
131 }); 130 });
132 }, 'Get bound range'); 131 }, 'Get bound range');
133 132
134 async_test(function(t) { 133 async_test(function(t) {
135 var req = createGetAllRequest(t, 'out-of-line', connection, 134 var req = createGetAllRequest(t, 'out-of-line', connection,
136 IDBKeyRange.bound('G', 'M'), 3); 135 IDBKeyRange.bound('G', 'M'), 3);
137 req.onsuccess = t.step_func(function(evt) { 136 req.onsuccess = t.step_func(function(evt) {
138 var data = evt.target.result; 137 var data = evt.target.result;
139 assert_class_string(data, 'Array', 'result should be an array'); 138 assert_class_string(data, 'Array', 'result should be an array');
140 assert_array_equals(data.map(e => e.ch), 'ghi'.split('')); 139 assert_array_equals(data.map(function(e) { return e.ch; }), 'ghi'.spli t(''));
141 assert_array_equals(data.map(e => e.upper), 'GHI'.split('')); 140 assert_array_equals(data.map(function(e) { return e.upper; }), 'GHI'.s plit(''));
142 t.done(); 141 t.done();
143 }); 142 });
144 }, 'Get bound range with maxCount'); 143 }, 'Get bound range with maxCount');
145 144
146 async_test(function(t) { 145 async_test(function(t) {
147 var req = createGetAllRequest(t, 'out-of-line', connection, 146 var req = createGetAllRequest(t, 'out-of-line', connection,
148 IDBKeyRange.bound('G', 'K', false, true)); 147 IDBKeyRange.bound('G', 'K', false, true));
149 req.onsuccess = t.step_func(function(evt) { 148 req.onsuccess = t.step_func(function(evt) {
150 var data = evt.target.result; 149 var data = evt.target.result;
151 assert_class_string(data, 'Array', 'result should be an array'); 150 assert_class_string(data, 'Array', 'result should be an array');
152 assert_array_equals(data.map(e => e.ch), 'ghij'.split('')); 151 assert_array_equals(data.map(function(e) { return e.ch; }), 'ghij'.spl it(''));
153 assert_array_equals(data.map(e => e.upper), 'GHIJ'.split('')); 152 assert_array_equals(data.map(function(e) { return e.upper; }), 'GHIJ'. split(''));
154 t.done(); 153 t.done();
155 }); 154 });
156 }, 'Get upper excluded'); 155 }, 'Get upper excluded');
157 156
158 async_test(function(t) { 157 async_test(function(t) {
159 var req = createGetAllRequest(t, 'out-of-line', connection, 158 var req = createGetAllRequest(t, 'out-of-line', connection,
160 IDBKeyRange.bound('G', 'K', true, false)); 159 IDBKeyRange.bound('G', 'K', true, false));
161 req.onsuccess = t.step_func(function(evt) { 160 req.onsuccess = t.step_func(function(evt) {
162 var data = evt.target.result; 161 var data = evt.target.result;
163 assert_class_string(data, 'Array', 'result should be an array'); 162 assert_class_string(data, 'Array', 'result should be an array');
164 assert_array_equals(data.map(e => e.ch), 'hijk'.split('')); 163 assert_array_equals(data.map(function(e) { return e.ch; }), 'hijk'.spl it(''));
165 assert_array_equals(data.map(e => e.upper), 'HIJK'.split('')); 164 assert_array_equals(data.map(function(e) { return e.upper; }), 'HIJK'. split(''));
166 t.done(); 165 t.done();
167 }); 166 });
168 }, 'Get lower excluded'); 167 }, 'Get lower excluded');
169 168
170 async_test(function(t) { 169 async_test(function(t) {
171 var req = createGetAllRequest(t, 'generated', 170 var req = createGetAllRequest(t, 'generated',
172 connection, IDBKeyRange.bound(4, 15), 3); 171 connection, IDBKeyRange.bound(4, 15), 3);
173 req.onsuccess = t.step_func(function(evt) { 172 req.onsuccess = t.step_func(function(evt) {
174 var data = evt.target.result; 173 var data = evt.target.result;
175 assert_true(Array.isArray(data)); 174 assert_true(Array.isArray(data));
(...skipping 12 matching lines...) Expand all
188 req.onerror = t.unreached_func('getAll request should succeed'); 187 req.onerror = t.unreached_func('getAll request should succeed');
189 }); 188 });
190 }, 'Non existent key'); 189 }, 'Non existent key');
191 190
192 async_test(function(t) { 191 async_test(function(t) {
193 var req = createGetAllRequest(t, 'out-of-line', connection, 192 var req = createGetAllRequest(t, 'out-of-line', connection,
194 undefined, 0); 193 undefined, 0);
195 req.onsuccess = t.step_func(function(evt) { 194 req.onsuccess = t.step_func(function(evt) {
196 var data = evt.target.result; 195 var data = evt.target.result;
197 assert_class_string(data, 'Array', 'result should be an array'); 196 assert_class_string(data, 'Array', 'result should be an array');
198 assert_array_equals(data.map(e => e.ch), alphabet); 197 assert_array_equals(data.map(function(e) { return e.ch; }), alphabet);
199 assert_array_equals(data.map(e => e.upper), ALPHABET); 198 assert_array_equals(data.map(function(e) { return e.upper; }), ALPHABE T);
200 t.done(); 199 t.done();
201 }); 200 });
202 }, 'maxCount=0'); 201 }, 'maxCount=0');
203 202
204 async_test(function(t) { 203 async_test(function(t) {
205 var req = createGetAllRequest(t, 'out-of-line-not-unique', connection, 204 var req = createGetAllRequest(t, 'out-of-line-not-unique', connection,
206 'first'); 205 'first');
207 req.onsuccess = t.step_func(function(evt) { 206 req.onsuccess = t.step_func(function(evt) {
208 var data = evt.target.result; 207 var data = evt.target.result;
209 assert_class_string(data, 'Array', 'result should be an array'); 208 assert_class_string(data, 'Array', 'result should be an array');
210 assert_array_equals(data.map(e => e.ch), 'abcdefghijklm'.split('')); 209 assert_array_equals(data.map(function(e) { return e.ch; }), 'abcdefghi jklm'.split(''));
211 assert_true(data.every(e => e.half === 'first')); 210 assert_true(data.every(function(e) { return e.half === 'first'; }));
212 t.done(); 211 t.done();
213 }); 212 });
214 }, 'Retrieve multiEntry key'); 213 }, 'Retrieve multiEntry key');
215 214
216 async_test(function(t) { 215 async_test(function(t) {
217 var req = createGetAllRequest(t, 'out-of-line-multi', connection, 216 var req = createGetAllRequest(t, 'out-of-line-multi', connection,
218 'vowel'); 217 'vowel');
219 req.onsuccess = t.step_func(function(evt) { 218 req.onsuccess = t.step_func(function(evt) {
220 var data = evt.target.result; 219 var data = evt.target.result;
221 assert_class_string(data, 'Array', 'result should be an array'); 220 assert_class_string(data, 'Array', 'result should be an array');
222 assert_array_equals(data.map(e => e.ch), ['a', 'e', 'i', 'o', 'u']); 221 assert_array_equals(data.map(function(e) { return e.ch; }), ['a', 'e', 'i', 'o', 'u']);
223 assert_array_equals(data[0].attribs, ['vowel', 'first']); 222 assert_array_equals(data[0].attribs, ['vowel', 'first']);
224 assert_true(data.every(e => e.attribs[0] === 'vowel')); 223 assert_true(data.every(function(e) { return e.attribs[0] === 'vowel'; }));
225 t.done(); 224 t.done();
226 }); 225 });
227 }, 'Retrieve one key multiple values'); 226 }, 'Retrieve one key multiple values');
227
228 // Explicit done needed in case async_test body fails synchronously.
229 done();
228 }); 230 });
229 231
230 </script> 232 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698