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

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: Rebased and linkage fix Created 5 years, 3 months 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 15 matching lines...) Expand all
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
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
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>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698