Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(147)

Side by Side Diff: LayoutTests/storage/indexeddb/lazy-index-population.html

Issue 243523003: Fire window.onerror for uncaught IndexedDB errors (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Don't capture full stack unless devtools is visible Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698