Chromium Code Reviews| 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 |