| 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() |
| 91 { | 93 { |
| 92 debug(""); | 94 debug(""); |
| 93 debug("Verify that uniqueness constraints are enforced when index is created
after puts:"); | 95 debug("Verify that uniqueness constraints are enforced when index is created
after puts:"); |
| 94 | 96 |
| 95 request = evalAndLog("indexedDB.open(dbname, 3)"); | 97 request = evalAndLog("indexedDB.open(dbname, 3)"); |
| 96 request.onerror = verifyPutThenCreateThenPut; | 98 request.onerror = verifyPutThenCreateThenPut; |
| 99 expectError(); |
| 97 request.onblocked = unexpectedBlockedCallback; | 100 request.onblocked = unexpectedBlockedCallback; |
| 98 request.onsuccess = unexpectedSuccessCallback; | 101 request.onsuccess = unexpectedSuccessCallback; |
| 99 request.onupgradeneeded = function() { | 102 request.onupgradeneeded = function() { |
| 100 connection = request.result; | 103 connection = request.result; |
| 101 trans = request.transaction; | 104 trans = request.transaction; |
| 102 | 105 |
| 103 evalAndLog("deleteAllObjectStores(connection)"); | 106 evalAndLog("deleteAllObjectStores(connection)"); |
| 104 | 107 |
| 105 evalAndLog("store = connection.createObjectStore('store')"); | 108 evalAndLog("store = connection.createObjectStore('store')"); |
| 106 evalAndLog("request1 = store.put({name: 'ted'}, 1)"); | 109 evalAndLog("request1 = store.put({name: 'ted'}, 1)"); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 124 trans.onabort = function () { | 127 trans.onabort = function () { |
| 125 debug("transaction aborted"); | 128 debug("transaction aborted"); |
| 126 shouldBe("++state", "3"); | 129 shouldBe("++state", "3"); |
| 127 shouldBe("trans.error.name", "'ConstraintError'"); | 130 shouldBe("trans.error.name", "'ConstraintError'"); |
| 128 }; | 131 }; |
| 129 }; | 132 }; |
| 130 } | 133 } |
| 131 | 134 |
| 132 function verifyPutThenCreateThenPut() | 135 function verifyPutThenCreateThenPut() |
| 133 { | 136 { |
| 137 expectError(); |
| 138 |
| 134 debug(""); | 139 debug(""); |
| 135 debug("Verify that uniqueness constraints are enforced when index is created
between puts:"); | 140 debug("Verify that uniqueness constraints are enforced when index is created
between puts:"); |
| 136 | 141 |
| 137 request = evalAndLog("indexedDB.open(dbname, 4)"); | 142 request = evalAndLog("indexedDB.open(dbname, 4)"); |
| 138 request.onerror = finishJSTest; | 143 request.onerror = finishJSTest; |
| 139 request.onblocked = unexpectedBlockedCallback; | 144 request.onblocked = unexpectedBlockedCallback; |
| 140 request.onsuccess = unexpectedSuccessCallback; | 145 request.onsuccess = unexpectedSuccessCallback; |
| 141 request.onupgradeneeded = function() { | 146 request.onupgradeneeded = function() { |
| 142 connection = request.result; | 147 connection = request.result; |
| 143 trans = request.transaction; | 148 trans = request.transaction; |
| 144 | 149 |
| 145 evalAndLog("deleteAllObjectStores(connection)"); | 150 evalAndLog("deleteAllObjectStores(connection)"); |
| 146 | 151 |
| 147 evalAndLog("store = connection.createObjectStore('store')"); | 152 evalAndLog("store = connection.createObjectStore('store')"); |
| 148 evalAndLog("request1 = store.put({name: 'alice'}, 1)"); | 153 evalAndLog("request1 = store.put({name: 'alice'}, 1)"); |
| 149 evalAndLog("store.createIndex('index4', 'name', {unique: true})"); | 154 evalAndLog("store.createIndex('index4', 'name', {unique: true})"); |
| 150 evalAndLog("request2 = store.put({name: 'alice'}, 2)"); | 155 evalAndLog("request2 = store.put({name: 'alice'}, 2)"); |
| 151 evalAndLog("state = 0"); | 156 evalAndLog("state = 0"); |
| 152 | 157 |
| 153 request1.onerror = unexpectedErrorCallback; | 158 request1.onerror = unexpectedErrorCallback; |
| 154 request1.onsuccess = function () { | 159 request1.onsuccess = function () { |
| 155 debug("request1 received success event"); | 160 debug("request1 received success event"); |
| 156 shouldBe("++state", "1"); | 161 shouldBe("++state", "1"); |
| 157 }; | 162 }; |
| 158 | 163 |
| 159 request2.onsuccess = unexpectedSuccessCallback; | 164 request2.onsuccess = unexpectedSuccessCallback; |
| 160 request2.onerror = function () { | 165 request2.onerror = function () { |
| 166 expectError(); |
| 161 debug("request2 received error event"); | 167 debug("request2 received error event"); |
| 162 shouldBe("++state", "2"); | 168 shouldBe("++state", "2"); |
| 163 }; | 169 }; |
| 164 | 170 |
| 165 trans.oncomplete = unexpectedCompleteCallback; | 171 trans.oncomplete = unexpectedCompleteCallback; |
| 166 trans.onabort = function () { | 172 trans.onabort = function () { |
| 167 debug("transaction aborted"); | 173 debug("transaction aborted"); |
| 168 shouldBe("++state", "3"); | 174 shouldBe("++state", "3"); |
| 169 shouldBe("trans.error.name", "'ConstraintError'"); | 175 shouldBe("trans.error.name", "'ConstraintError'"); |
| 170 }; | 176 }; |
| 171 }; | 177 }; |
| 172 } | 178 } |
| 173 | 179 |
| 174 </script> | 180 </script> |
| OLD | NEW |