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

Side by Side Diff: LayoutTests/imported/web-platform-tests/IndexedDB/idbcursor-advance-continue-async.htm

Issue 560893005: First checked-in import of the W3C's test suites. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: add new expectations for newly failing w3c tests Created 6 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
(Empty)
1 <!DOCTYPE html>
2 <title>IDBCursor asyncness</title>
3 <link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
4 <script src="../../../resources/testharness.js"></script>
5 <script src="../../../resources/testharnessreport.js"></script>
6 <script src="support.js"></script>
7
8 <script>
9
10 var db, open;
11
12 setup(function() {
13 open = indexedDB.open('testdb-' + new Date().getTime());
14 open.onupgradeneeded = function(e) {
15 db = e.target.result;
16 var objStore = db.createObjectStore("test");
17 objStore.createIndex("index", "");
18
19 objStore.add("data", 1);
20 objStore.add("data2", 2);
21 };
22 },
23 { explicit_done: true });
24
25
26 open.onsuccess = function() {
27
28
29 async_test(document.title + " - advance").step(function(e) {
30 var count = 0;
31 var rq = db.transaction("test").objectStore("test").openCursor();
32
33 rq.onsuccess = this.step_func(function(e) {
34 if (!e.target.result) {
35 assert_equals(count, 2, 'count');
36 this.done();
37 return;
38 }
39 var cursor = e.target.result;
40
41 switch(count) {
42 case 0:
43 assert_equals(cursor.value, "data")
44 assert_equals(cursor.key, 1)
45 cursor.advance(1)
46 assert_equals(cursor.value, "data")
47 assert_equals(cursor.key, 1)
48 break
49
50 case 1:
51 assert_equals(cursor.value, "data2")
52 assert_equals(cursor.key, 2)
53 cursor.advance(1)
54 assert_equals(cursor.value, "data2")
55 assert_equals(cursor.key, 2)
56 break
57
58 default:
59 assert_unreached("Unexpected count: " + count)
60 }
61
62 count++;
63 });
64 rq.onerror = fail(this, "unexpected error")
65 });
66
67
68 async_test(document.title + " - continue").step(function(e) {
69 var count = 0;
70 var rq = db.transaction("test").objectStore("test").index("index").o penCursor();
71
72 rq.onsuccess = this.step_func(function(e) {
73 if (!e.target.result) {
74 assert_equals(count, 2, 'count');
75 this.done();
76 return;
77 }
78 var cursor = e.target.result;
79
80 switch(count) {
81 case 0:
82 assert_equals(cursor.value, "data")
83 assert_equals(cursor.key, "data")
84 assert_equals(cursor.primaryKey, 1)
85 cursor.continue("data2")
86 assert_equals(cursor.value, "data")
87 assert_equals(cursor.key, "data")
88 assert_equals(cursor.primaryKey, 1)
89 break
90
91 case 1:
92 assert_equals(cursor.value, "data2")
93 assert_equals(cursor.key, "data2")
94 assert_equals(cursor.primaryKey, 2)
95 cursor.continue()
96 assert_equals(cursor.value, "data2")
97 assert_equals(cursor.key, "data2")
98 assert_equals(cursor.primaryKey, 2)
99 break
100
101 default:
102 assert_unreached("Unexpected count: " + count)
103 }
104
105 count++;
106 });
107 rq.onerror = fail(this, "unexpected error")
108 });
109
110
111 async_test(document.title + " - fresh advance still async").step(functio n(e) {
112 var count = 0;
113 var rq = db.transaction("test").objectStore("test").index("index").o penCursor();
114
115 rq.onsuccess = this.step_func(function(e) {
116 if (!e.target.result) {
117 assert_equals(count, 2, 'count');
118 this.done();
119 return;
120 }
121 var cursor = e.target.result;
122 cursor.advance(1)
123
124 switch(count) {
125 case 0:
126 assert_equals(cursor.value, "data")
127 assert_equals(cursor.key, "data")
128 assert_equals(cursor.primaryKey, 1)
129 break
130
131 case 1:
132 assert_equals(cursor.value, "data2")
133 assert_equals(cursor.key, "data2")
134 assert_equals(cursor.primaryKey, 2)
135 break
136
137 default:
138 assert_unreached("Unexpected count: " + count)
139 }
140
141 count++;
142 });
143 rq.onerror = fail(this, "unexpected error")
144 });
145
146
147 async_test(document.title + " - fresh continue still async").step(functi on(e) {
148 var count = 0;
149 var rq = db.transaction("test").objectStore("test").openCursor();
150
151 rq.onsuccess = this.step_func(function(e) {
152 if (!e.target.result) {
153 assert_equals(count, 2, 'count');
154 this.done();
155 return;
156 }
157 var cursor = e.target.result;
158 cursor.continue()
159
160 switch(count) {
161 case 0:
162 assert_equals(cursor.value, "data")
163 assert_equals(cursor.key, 1)
164 break
165
166 case 1:
167 assert_equals(cursor.value, "data2")
168 assert_equals(cursor.key, 2)
169 break
170
171 default:
172 assert_unreached("Unexpected count: " + count)
173 }
174
175 count++;
176 });
177 rq.onerror = fail(this, "unexpected error")
178 });
179
180 // Stop blocking the testing system from hereon
181 done();
182 }
183
184 </script>
185
186 <div id=log></div>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698