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

Side by Side Diff: LayoutTests/storage/indexeddb/index-getallkeys.html

Issue 1303983002: IndexedDB: Treat count of 0 as unbounded for getAll() methods (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Review feedback 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
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <title>IndexedDB: Test IDBIndex.getAllKeys.</title> 2 <title>IndexedDB: Test IDBIndex.getAllKeys.</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 6
7 var alphabet = 'abcdefghijklmnopqrstuvwxyz'.split(''); 7 var alphabet = 'abcdefghijklmnopqrstuvwxyz'.split('');
8 8
9 function doSetup(dbName, dbVersion, onsuccess) { 9 function doSetup(dbName, dbVersion, onsuccess) {
10 var delete_request = indexedDB.deleteDatabase(dbName); 10 var delete_request = indexedDB.deleteDatabase(dbName);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 }; 53 };
54 }; 54 };
55 } 55 }
56 56
57 function createGetAllKeysRequest(t, storeName, connection, range, maxCount) { 57 function createGetAllKeysRequest(t, storeName, connection, range, maxCount) {
58 var transaction = connection.transaction(storeName, 'readonly'); 58 var transaction = connection.transaction(storeName, 'readonly');
59 var store = transaction.objectStore(storeName); 59 var store = transaction.objectStore(storeName);
60 var index = store.index('test_idx'); 60 var index = store.index('test_idx');
61 // TODO(cmumford): Simplify once crbug.com/335871 is fixed. 61 // TODO(cmumford): Simplify once crbug.com/335871 is fixed.
62 var req = maxCount !== undefined ? index.getAllKeys(range, maxCount) : 62 var req = maxCount !== undefined ? index.getAllKeys(range, maxCount) :
63 range !== undefined ? index.getAllKeys(range) : index.getAllKeys() ; 63 range !== undefined ? index.getAllKeys(range) :
64 index.getAllKeys();
64 req.onerror = t.unreached_func('getAllKeys request should succeed'); 65 req.onerror = t.unreached_func('getAllKeys request should succeed');
65 return req; 66 return req;
66 } 67 }
67 68
68 doSetup(location.pathname + '-IDBIndex.getAllKeys', 1, function(evt) { 69 doSetup(location.pathname + '-IDBIndex.getAllKeys', 1, function(evt) {
69 var connection = evt.target.result; 70 var connection = evt.target.result;
70 async_test(function(t) { 71 async_test(function(t) {
71 var req = createGetAllKeysRequest(t, 'out-of-line', connection, 'C'); 72 var req = createGetAllKeysRequest(t, 'out-of-line', connection, 'C');
72 req.onsuccess = t.step_func(function(evt) { 73 req.onsuccess = t.step_func(function(evt) {
73 var data = evt.target.result; 74 var data = evt.target.result;
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 connection, "Doesn't exist"); 176 connection, "Doesn't exist");
176 req.onsuccess = t.step_func(function(evt) { 177 req.onsuccess = t.step_func(function(evt) {
177 assert_array_equals(evt.target.result, [], 178 assert_array_equals(evt.target.result, [],
178 'getAllKeys() using a nonexistent key should return empty array'); 179 'getAllKeys() using a nonexistent key should return empty array');
179 t.done(); 180 t.done();
180 req.onerror = t.unreached_func('getAllKeys request should succeed'); 181 req.onerror = t.unreached_func('getAllKeys request should succeed');
181 }); 182 });
182 }, 'Non existent key'); 183 }, 'Non existent key');
183 184
184 async_test(function(t) { 185 async_test(function(t) {
185 var transaction = connection.transaction('out-of-line', 'readonly'); 186 var req = createGetAllKeysRequest(t, 'out-of-line', connection,
186 var store = transaction.objectStore('out-of-line'); 187 undefined, 0);
187 var index = store.index('test_idx'); 188 req.onsuccess = t.step_func(function(evt) {
188 assert_throws(new TypeError(), function () { 189 assert_array_equals(evt.target.result, alphabet,
189 index.getAllKeys(undefined, 0); 190 'getAllKeys() should return a..z');
190 }, 'getAllKeys() with maxCount=0 should throw TypeError'); 191 t.done();
191 t.done(); 192 });
192 }, 'maxCount=0'); 193 }, 'maxCount=0');
193 194
194 async_test(function(t) { 195 async_test(function(t) {
195 var req = createGetAllKeysRequest(t, 'out-of-line-multi', connection, 196 var req = createGetAllKeysRequest(t, 'out-of-line-multi', connection,
196 'vowel'); 197 'vowel');
197 req.onsuccess = t.step_func(function(evt) { 198 req.onsuccess = t.step_func(function(evt) {
198 assert_array_equals(evt.target.result, ['A','E','I','O','U']) 199 assert_array_equals(evt.target.result, ['A','E','I','O','U'])
199 t.done(); 200 t.done();
200 }); 201 });
201 req.onerror = t.unreached_func('getAllKeys request should succeed'); 202 req.onerror = t.unreached_func('getAllKeys request should succeed');
202 }, 'Retrieve multiEntry keys'); 203 }, 'Retrieve multiEntry keys');
203 }); 204 });
204 205
205 </script> 206 </script>
OLDNEW
« no previous file with comments | « LayoutTests/storage/indexeddb/index-getall.html ('k') | LayoutTests/storage/indexeddb/objectstore-getall.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698