| 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 15 matching lines...) Expand all  Loading... | 
| 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         debug("request2 received error event"); | 34         debug("request2 received error event"); | 
| 35         shouldBe("++state", "2"); | 35         shouldBe("++state", "2"); | 
|  | 36         waitForError(/ConstraintError/, function() { | 
|  | 37             shouldBe("++state", "3"); | 
|  | 38         }); | 
| 36     }; | 39     }; | 
| 37 | 40 | 
| 38     trans.oncomplete = unexpectedCompleteCallback; | 41     trans.oncomplete = unexpectedCompleteCallback; | 
| 39     trans.onabort = function () { | 42     trans.onabort = function () { | 
| 40         debug("transaction aborted"); | 43         debug("transaction aborted"); | 
| 41         shouldBe("++state", "3"); | 44         shouldBe("++state", "4"); | 
| 42         shouldBe("trans.error.name", "'ConstraintError'"); | 45         shouldBe("trans.error.name", "'ConstraintError'"); | 
| 43         verifyCreateThenPut(); | 46         verifyCreateThenPut(); | 
| 44     }; | 47     }; | 
| 45 } | 48 } | 
| 46 | 49 | 
| 47 function verifyCreateThenPut() | 50 function verifyCreateThenPut() | 
| 48 { | 51 { | 
| 49     debug(""); | 52     debug(""); | 
| 50     debug("Verify that uniqueness constraints are enforced when index is created
      before puts:"); | 53     debug("Verify that uniqueness constraints are enforced when index is created
      before puts:"); | 
| 51 | 54 | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
| 69         request1.onerror = unexpectedErrorCallback; | 72         request1.onerror = unexpectedErrorCallback; | 
| 70         request1.onsuccess = function () { | 73         request1.onsuccess = function () { | 
| 71             debug("request1 (index2) received success event"); | 74             debug("request1 (index2) received success event"); | 
| 72             shouldBe("++state", "1"); | 75             shouldBe("++state", "1"); | 
| 73         }; | 76         }; | 
| 74 | 77 | 
| 75         request2.onsuccess = unexpectedSuccessCallback; | 78         request2.onsuccess = unexpectedSuccessCallback; | 
| 76         request2.onerror = function () { | 79         request2.onerror = function () { | 
| 77             debug("request2 (index2) received error event"); | 80             debug("request2 (index2) received error event"); | 
| 78             shouldBe("++state", "2"); | 81             shouldBe("++state", "2"); | 
|  | 82             waitForError(/ConstraintError/, function() { | 
|  | 83                 shouldBe("++state", "3"); | 
|  | 84             }); | 
| 79         }; | 85         }; | 
| 80 | 86 | 
| 81         trans.oncomplete = unexpectedCompleteCallback; | 87         trans.oncomplete = unexpectedCompleteCallback; | 
| 82         trans.onabort = function () { | 88         trans.onabort = function () { | 
| 83             debug("transaction aborted"); | 89             debug("transaction aborted"); | 
| 84             shouldBe("++state", "3"); | 90             shouldBe("++state", "4"); | 
| 85             shouldBe("trans.error.name", "'ConstraintError'"); | 91             shouldBe("trans.error.name", "'ConstraintError'"); | 
| 86         }; | 92         }; | 
| 87     }; | 93     }; | 
| 88 } | 94 } | 
| 89 | 95 | 
| 90 function verifyPutThenCreate() | 96 function verifyPutThenCreate(evt) | 
| 91 { | 97 { | 
|  | 98     evt.preventDefault(); | 
|  | 99 | 
| 92     debug(""); | 100     debug(""); | 
| 93     debug("Verify that uniqueness constraints are enforced when index is created
      after puts:"); | 101     debug("Verify that uniqueness constraints are enforced when index is created
      after puts:"); | 
| 94 | 102 | 
| 95     request = evalAndLog("indexedDB.open(dbname, 3)"); | 103     request = evalAndLog("indexedDB.open(dbname, 3)"); | 
| 96     request.onerror = verifyPutThenCreateThenPut; | 104     request.onerror = verifyPutThenCreateThenPut; | 
| 97     request.onblocked = unexpectedBlockedCallback; | 105     request.onblocked = unexpectedBlockedCallback; | 
| 98     request.onsuccess = unexpectedSuccessCallback; | 106     request.onsuccess = unexpectedSuccessCallback; | 
| 99     request.onupgradeneeded = function() { | 107     request.onupgradeneeded = function() { | 
| 100         connection = request.result; | 108         connection = request.result; | 
| 101         trans = request.transaction; | 109         trans = request.transaction; | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
| 122 | 130 | 
| 123         trans.oncomplete = unexpectedCompleteCallback; | 131         trans.oncomplete = unexpectedCompleteCallback; | 
| 124         trans.onabort = function () { | 132         trans.onabort = function () { | 
| 125             debug("transaction aborted"); | 133             debug("transaction aborted"); | 
| 126             shouldBe("++state", "3"); | 134             shouldBe("++state", "3"); | 
| 127             shouldBe("trans.error.name", "'ConstraintError'"); | 135             shouldBe("trans.error.name", "'ConstraintError'"); | 
| 128         }; | 136         }; | 
| 129     }; | 137     }; | 
| 130 } | 138 } | 
| 131 | 139 | 
| 132 function verifyPutThenCreateThenPut() | 140 function verifyPutThenCreateThenPut(evt) | 
| 133 { | 141 { | 
|  | 142     evt.preventDefault(); | 
|  | 143 | 
| 134     debug(""); | 144     debug(""); | 
| 135     debug("Verify that uniqueness constraints are enforced when index is created
      between puts:"); | 145     debug("Verify that uniqueness constraints are enforced when index is created
      between puts:"); | 
| 136 | 146 | 
| 137     request = evalAndLog("indexedDB.open(dbname, 4)"); | 147     request = evalAndLog("indexedDB.open(dbname, 4)"); | 
| 138     request.onerror = finishJSTest; | 148     request.onerror = finishJSTest; | 
| 139     request.onblocked = unexpectedBlockedCallback; | 149     request.onblocked = unexpectedBlockedCallback; | 
| 140     request.onsuccess = unexpectedSuccessCallback; | 150     request.onsuccess = unexpectedSuccessCallback; | 
| 141     request.onupgradeneeded = function() { | 151     request.onupgradeneeded = function() { | 
| 142         connection = request.result; | 152         connection = request.result; | 
| 143         trans = request.transaction; | 153         trans = request.transaction; | 
| 144 | 154 | 
| 145         evalAndLog("deleteAllObjectStores(connection)"); | 155         evalAndLog("deleteAllObjectStores(connection)"); | 
| 146 | 156 | 
| 147         evalAndLog("store = connection.createObjectStore('store')"); | 157         evalAndLog("store = connection.createObjectStore('store')"); | 
| 148         evalAndLog("request1 = store.put({name: 'alice'}, 1)"); | 158         evalAndLog("request1 = store.put({name: 'alice'}, 1)"); | 
| 149         evalAndLog("store.createIndex('index4', 'name', {unique: true})"); | 159         evalAndLog("store.createIndex('index4', 'name', {unique: true})"); | 
| 150         evalAndLog("request2 = store.put({name: 'alice'}, 2)"); | 160         evalAndLog("request2 = store.put({name: 'alice'}, 2)"); | 
| 151         evalAndLog("state = 0"); | 161         evalAndLog("state = 0"); | 
| 152 | 162 | 
| 153         request1.onerror = unexpectedErrorCallback; | 163         request1.onerror = unexpectedErrorCallback; | 
| 154         request1.onsuccess = function () { | 164         request1.onsuccess = function () { | 
| 155             debug("request1 received success event"); | 165             debug("request1 received success event"); | 
| 156             shouldBe("++state", "1"); | 166             shouldBe("++state", "1"); | 
| 157         }; | 167         }; | 
| 158 | 168 | 
| 159         request2.onsuccess = unexpectedSuccessCallback; | 169         request2.onsuccess = unexpectedSuccessCallback; | 
| 160         request2.onerror = function () { | 170         request2.onerror = function () { | 
| 161             debug("request2 received error event"); | 171             debug("request2 received error event"); | 
| 162             shouldBe("++state", "2"); | 172             shouldBe("++state", "2"); | 
|  | 173             waitForError(/ConstraintError/, function() { | 
|  | 174                 shouldBe("++state", "3"); | 
|  | 175             }); | 
| 163         }; | 176         }; | 
| 164 | 177 | 
| 165         trans.oncomplete = unexpectedCompleteCallback; | 178         trans.oncomplete = unexpectedCompleteCallback; | 
| 166         trans.onabort = function () { | 179         trans.onabort = function () { | 
| 167             debug("transaction aborted"); | 180             debug("transaction aborted"); | 
| 168             shouldBe("++state", "3"); | 181             shouldBe("++state", "4"); | 
| 169             shouldBe("trans.error.name", "'ConstraintError'"); | 182             shouldBe("trans.error.name", "'ConstraintError'"); | 
| 170         }; | 183         }; | 
| 171     }; | 184     }; | 
| 172 } | 185 } | 
| 173 | 186 | 
| 174 </script> | 187 </script> | 
| OLD | NEW | 
|---|