| OLD | NEW |
| 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 setup({explicit_done: true}); |
| 6 | 7 |
| 7 var alphabet = 'abcdefghijklmnopqrstuvwxyz'.split(''); | 8 var alphabet = 'abcdefghijklmnopqrstuvwxyz'.split(''); |
| 8 | 9 |
| 9 function doSetup(dbName, dbVersion, onsuccess) { | 10 function doSetup(dbName, dbVersion, onsuccess) { |
| 10 var delete_request = indexedDB.deleteDatabase(dbName); | 11 var delete_request = indexedDB.deleteDatabase(dbName); |
| 11 delete_request.onerror = function() { | 12 delete_request.onerror = function() { |
| 12 assert_unreached('deleteDatabase should not fail'); | 13 assert_unreached('deleteDatabase should not fail'); |
| 13 }; | 14 }; |
| 14 delete_request.onsuccess = function(e) { | 15 delete_request.onsuccess = function(e) { |
| 15 var req = indexedDB.open(dbName, dbVersion); | 16 var req = indexedDB.open(dbName, dbVersion); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 store = connection.createObjectStore('empty', null); | 52 store = connection.createObjectStore('empty', null); |
| 52 index = store.createIndex('test_idx', 'upper'); | 53 index = store.createIndex('test_idx', 'upper'); |
| 53 }; | 54 }; |
| 54 }; | 55 }; |
| 55 } | 56 } |
| 56 | 57 |
| 57 function createGetAllKeysRequest(t, storeName, connection, range, maxCount) { | 58 function createGetAllKeysRequest(t, storeName, connection, range, maxCount) { |
| 58 var transaction = connection.transaction(storeName, 'readonly'); | 59 var transaction = connection.transaction(storeName, 'readonly'); |
| 59 var store = transaction.objectStore(storeName); | 60 var store = transaction.objectStore(storeName); |
| 60 var index = store.index('test_idx'); | 61 var index = store.index('test_idx'); |
| 61 // TODO(cmumford): Simplify once crbug.com/335871 is fixed. | 62 var req = index.getAllKeys(range, maxCount); |
| 62 var req = maxCount !== undefined ? index.getAllKeys(range, maxCount) : | |
| 63 range !== undefined ? index.getAllKeys(range) : | |
| 64 index.getAllKeys(); | |
| 65 req.onerror = t.unreached_func('getAllKeys request should succeed'); | 63 req.onerror = t.unreached_func('getAllKeys request should succeed'); |
| 66 return req; | 64 return req; |
| 67 } | 65 } |
| 68 | 66 |
| 69 doSetup(location.pathname + '-IDBIndex.getAllKeys', 1, function(evt) { | 67 doSetup(location.pathname + '-IDBIndex.getAllKeys', 1, function(evt) { |
| 70 var connection = evt.target.result; | 68 var connection = evt.target.result; |
| 71 async_test(function(t) { | 69 async_test(function(t) { |
| 72 var req = createGetAllKeysRequest(t, 'out-of-line', connection, 'C'); | 70 var req = createGetAllKeysRequest(t, 'out-of-line', connection, 'C'); |
| 73 req.onsuccess = t.step_func(function(evt) { | 71 req.onsuccess = t.step_func(function(evt) { |
| 74 var data = evt.target.result; | 72 var data = evt.target.result; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 104 'getAllKeys() should return 1..26'); | 102 'getAllKeys() should return 1..26'); |
| 105 t.done(); | 103 t.done(); |
| 106 }); | 104 }); |
| 107 }, 'Get all generated keys'); | 105 }, 'Get all generated keys'); |
| 108 | 106 |
| 109 async_test(function(t) { | 107 async_test(function(t) { |
| 110 var req = createGetAllKeysRequest(t, 'out-of-line', connection, undefined, | 108 var req = createGetAllKeysRequest(t, 'out-of-line', connection, undefined, |
| 111 10); | 109 10); |
| 112 req.onsuccess = t.step_func(function(evt) { | 110 req.onsuccess = t.step_func(function(evt) { |
| 113 assert_array_equals(evt.target.result, | 111 assert_array_equals(evt.target.result, |
| 114 ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'], | 112 'abcdefghij'.split(''), |
| 115 'getAllKeys() should return a..j'); | 113 'getAllKeys() should return a..j'); |
| 116 t.done(); | 114 t.done(); |
| 117 }); | 115 }); |
| 118 }, 'maxCount=10'); | 116 }, 'maxCount=10'); |
| 119 | 117 |
| 120 async_test(function(t) { | 118 async_test(function(t) { |
| 121 var req = createGetAllKeysRequest(t, 'out-of-line', connection, | 119 var req = createGetAllKeysRequest(t, 'out-of-line', connection, |
| 122 IDBKeyRange.bound('G', 'M')); | 120 IDBKeyRange.bound('G', 'M')); |
| 123 req.onsuccess = t.step_func(function(evt) { | 121 req.onsuccess = t.step_func(function(evt) { |
| 124 assert_array_equals(evt.target.result, | 122 assert_array_equals(evt.target.result, |
| 125 ['g', 'h', 'i', 'j', 'k', 'l', 'm'], | 123 'ghijklm'.split(''), |
| 126 'getAllKeys() should return g..m'); | 124 'getAllKeys() should return g..m'); |
| 127 t.done(); | 125 t.done(); |
| 128 }); | 126 }); |
| 129 }, 'Get bound range'); | 127 }, 'Get bound range'); |
| 130 | 128 |
| 131 async_test(function(t) { | 129 async_test(function(t) { |
| 132 var req = createGetAllKeysRequest(t, 'out-of-line', connection, | 130 var req = createGetAllKeysRequest(t, 'out-of-line', connection, |
| 133 IDBKeyRange.bound('G', 'M'), 3); | 131 IDBKeyRange.bound('G', 'M'), 3); |
| 134 req.onsuccess = t.step_func(function(evt) { | 132 req.onsuccess = t.step_func(function(evt) { |
| 135 assert_array_equals(evt.target.result, | 133 assert_array_equals(evt.target.result, |
| 136 ['g', 'h', 'i'], | 134 ['g', 'h', 'i'], |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 | 192 |
| 195 async_test(function(t) { | 193 async_test(function(t) { |
| 196 var req = createGetAllKeysRequest(t, 'out-of-line-multi', connection, | 194 var req = createGetAllKeysRequest(t, 'out-of-line-multi', connection, |
| 197 'vowel'); | 195 'vowel'); |
| 198 req.onsuccess = t.step_func(function(evt) { | 196 req.onsuccess = t.step_func(function(evt) { |
| 199 assert_array_equals(evt.target.result, ['A','E','I','O','U']) | 197 assert_array_equals(evt.target.result, ['A','E','I','O','U']) |
| 200 t.done(); | 198 t.done(); |
| 201 }); | 199 }); |
| 202 req.onerror = t.unreached_func('getAllKeys request should succeed'); | 200 req.onerror = t.unreached_func('getAllKeys request should succeed'); |
| 203 }, 'Retrieve multiEntry keys'); | 201 }, 'Retrieve multiEntry keys'); |
| 202 |
| 203 // Explicit done needed in case async_test body fails synchronously. |
| 204 done(); |
| 204 }); | 205 }); |
| 205 | 206 |
| 206 </script> | 207 </script> |
| OLD | NEW |