| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src="../../resources/js-test.js"></script> | 2 <script src="../../resources/js-test.js"></script> |
| 3 <script src="resources/shared.js"></script> | 3 <script src="resources/shared.js"></script> |
| 4 <script> | 4 <script> |
| 5 | 5 |
| 6 description("Verify edge cases that lazy index population in an IndexedDB implem
entation might reveal."); | 6 description("Verify edge cases that lazy index population in an IndexedDB implem
entation might reveal."); |
| 7 | 7 |
| 8 indexedDBTest(prepareDatabase, verifyPreExistingIndex); | 8 indexedDBTest(prepareDatabase, verifyPreExistingIndex); |
| 9 function prepareDatabase() | 9 function prepareDatabase() |
| 10 { | 10 { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 evalAndLog("state = 0"); | 24 evalAndLog("state = 0"); |
| 25 | 25 |
| 26 request1.onerror = unexpectedErrorCallback; | 26 request1.onerror = unexpectedErrorCallback; |
| 27 request1.onsuccess = function () { | 27 request1.onsuccess = function () { |
| 28 debug("request1 received success event"); | 28 debug("request1 received success event"); |
| 29 shouldBe("++state", "1"); | 29 shouldBe("++state", "1"); |
| 30 }; | 30 }; |
| 31 | 31 |
| 32 request2.onsuccess = unexpectedSuccessCallback; | 32 request2.onsuccess = unexpectedSuccessCallback; |
| 33 request2.onerror = function () { | 33 request2.onerror = function () { |
| 34 expectError(); |
| 34 debug("request2 received error event"); | 35 debug("request2 received error event"); |
| 35 shouldBe("++state", "2"); | 36 shouldBe("++state", "2"); |
| 36 }; | 37 }; |
| 37 | 38 |
| 38 trans.oncomplete = unexpectedCompleteCallback; | 39 trans.oncomplete = unexpectedCompleteCallback; |
| 39 trans.onabort = function () { | 40 trans.onabort = function () { |
| 40 debug("transaction aborted"); | 41 debug("transaction aborted"); |
| 41 shouldBe("++state", "3"); | 42 shouldBe("++state", "3"); |
| 42 shouldBe("trans.error.name", "'ConstraintError'"); | 43 shouldBe("trans.error.name", "'ConstraintError'"); |
| 43 verifyCreateThenPut(); | 44 verifyCreateThenPut(); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 67 evalAndLog("state = 0"); | 68 evalAndLog("state = 0"); |
| 68 | 69 |
| 69 request1.onerror = unexpectedErrorCallback; | 70 request1.onerror = unexpectedErrorCallback; |
| 70 request1.onsuccess = function () { | 71 request1.onsuccess = function () { |
| 71 debug("request1 (index2) received success event"); | 72 debug("request1 (index2) received success event"); |
| 72 shouldBe("++state", "1"); | 73 shouldBe("++state", "1"); |
| 73 }; | 74 }; |
| 74 | 75 |
| 75 request2.onsuccess = unexpectedSuccessCallback; | 76 request2.onsuccess = unexpectedSuccessCallback; |
| 76 request2.onerror = function () { | 77 request2.onerror = function () { |
| 78 expectError(); |
| 77 debug("request2 (index2) received error event"); | 79 debug("request2 (index2) received error event"); |
| 78 shouldBe("++state", "2"); | 80 shouldBe("++state", "2"); |
| 79 }; | 81 }; |
| 80 | 82 |
| 81 trans.oncomplete = unexpectedCompleteCallback; | 83 trans.oncomplete = unexpectedCompleteCallback; |
| 82 trans.onabort = function () { | 84 trans.onabort = function () { |
| 83 debug("transaction aborted"); | 85 debug("transaction aborted"); |
| 84 shouldBe("++state", "3"); | 86 shouldBe("++state", "3"); |
| 85 shouldBe("trans.error.name", "'ConstraintError'"); | 87 shouldBe("trans.error.name", "'ConstraintError'"); |
| 86 }; | 88 }; |
| 87 }; | 89 }; |
| 88 } | 90 } |
| 89 | 91 |
| 90 function verifyPutThenCreate() | 92 function verifyPutThenCreate(evt) |
| 91 { | 93 { |
| 94 evt.preventDefault(); |
| 95 |
| 92 debug(""); | 96 debug(""); |
| 93 debug("Verify that uniqueness constraints are enforced when index is created
after puts:"); | 97 debug("Verify that uniqueness constraints are enforced when index is created
after puts:"); |
| 94 | 98 |
| 95 request = evalAndLog("indexedDB.open(dbname, 3)"); | 99 request = evalAndLog("indexedDB.open(dbname, 3)"); |
| 96 request.onerror = verifyPutThenCreateThenPut; | 100 request.onerror = verifyPutThenCreateThenPut; |
| 97 request.onblocked = unexpectedBlockedCallback; | 101 request.onblocked = unexpectedBlockedCallback; |
| 98 request.onsuccess = unexpectedSuccessCallback; | 102 request.onsuccess = unexpectedSuccessCallback; |
| 99 request.onupgradeneeded = function() { | 103 request.onupgradeneeded = function() { |
| 100 connection = request.result; | 104 connection = request.result; |
| 101 trans = request.transaction; | 105 trans = request.transaction; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 122 | 126 |
| 123 trans.oncomplete = unexpectedCompleteCallback; | 127 trans.oncomplete = unexpectedCompleteCallback; |
| 124 trans.onabort = function () { | 128 trans.onabort = function () { |
| 125 debug("transaction aborted"); | 129 debug("transaction aborted"); |
| 126 shouldBe("++state", "3"); | 130 shouldBe("++state", "3"); |
| 127 shouldBe("trans.error.name", "'ConstraintError'"); | 131 shouldBe("trans.error.name", "'ConstraintError'"); |
| 128 }; | 132 }; |
| 129 }; | 133 }; |
| 130 } | 134 } |
| 131 | 135 |
| 132 function verifyPutThenCreateThenPut() | 136 function verifyPutThenCreateThenPut(evt) |
| 133 { | 137 { |
| 138 evt.preventDefault(); |
| 139 |
| 134 debug(""); | 140 debug(""); |
| 135 debug("Verify that uniqueness constraints are enforced when index is created
between puts:"); | 141 debug("Verify that uniqueness constraints are enforced when index is created
between puts:"); |
| 136 | 142 |
| 137 request = evalAndLog("indexedDB.open(dbname, 4)"); | 143 request = evalAndLog("indexedDB.open(dbname, 4)"); |
| 138 request.onerror = finishJSTest; | 144 request.onerror = finishJSTest; |
| 139 request.onblocked = unexpectedBlockedCallback; | 145 request.onblocked = unexpectedBlockedCallback; |
| 140 request.onsuccess = unexpectedSuccessCallback; | 146 request.onsuccess = unexpectedSuccessCallback; |
| 141 request.onupgradeneeded = function() { | 147 request.onupgradeneeded = function() { |
| 142 connection = request.result; | 148 connection = request.result; |
| 143 trans = request.transaction; | 149 trans = request.transaction; |
| 144 | 150 |
| 145 evalAndLog("deleteAllObjectStores(connection)"); | 151 evalAndLog("deleteAllObjectStores(connection)"); |
| 146 | 152 |
| 147 evalAndLog("store = connection.createObjectStore('store')"); | 153 evalAndLog("store = connection.createObjectStore('store')"); |
| 148 evalAndLog("request1 = store.put({name: 'alice'}, 1)"); | 154 evalAndLog("request1 = store.put({name: 'alice'}, 1)"); |
| 149 evalAndLog("store.createIndex('index4', 'name', {unique: true})"); | 155 evalAndLog("store.createIndex('index4', 'name', {unique: true})"); |
| 150 evalAndLog("request2 = store.put({name: 'alice'}, 2)"); | 156 evalAndLog("request2 = store.put({name: 'alice'}, 2)"); |
| 151 evalAndLog("state = 0"); | 157 evalAndLog("state = 0"); |
| 152 | 158 |
| 153 request1.onerror = unexpectedErrorCallback; | 159 request1.onerror = unexpectedErrorCallback; |
| 154 request1.onsuccess = function () { | 160 request1.onsuccess = function () { |
| 155 debug("request1 received success event"); | 161 debug("request1 received success event"); |
| 156 shouldBe("++state", "1"); | 162 shouldBe("++state", "1"); |
| 157 }; | 163 }; |
| 158 | 164 |
| 159 request2.onsuccess = unexpectedSuccessCallback; | 165 request2.onsuccess = unexpectedSuccessCallback; |
| 160 request2.onerror = function () { | 166 request2.onerror = function () { |
| 167 expectError(); |
| 161 debug("request2 received error event"); | 168 debug("request2 received error event"); |
| 162 shouldBe("++state", "2"); | 169 shouldBe("++state", "2"); |
| 163 }; | 170 }; |
| 164 | 171 |
| 165 trans.oncomplete = unexpectedCompleteCallback; | 172 trans.oncomplete = unexpectedCompleteCallback; |
| 166 trans.onabort = function () { | 173 trans.onabort = function () { |
| 167 debug("transaction aborted"); | 174 debug("transaction aborted"); |
| 168 shouldBe("++state", "3"); | 175 shouldBe("++state", "3"); |
| 169 shouldBe("trans.error.name", "'ConstraintError'"); | 176 shouldBe("trans.error.name", "'ConstraintError'"); |
| 170 }; | 177 }; |
| 171 }; | 178 }; |
| 172 } | 179 } |
| 173 | 180 |
| 174 </script> | 181 </script> |
| OLD | NEW |