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

Side by Side Diff: LayoutTests/imported/web-platform-tests/IndexedDB/idbcursor_iterating.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.continue() - objectstore - delete next element, and iterate to it</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 var db,
10 count = 0,
11 t = async_test(document.title, {timeout: 10000});
12
13 var open_rq = createdb(t);
14 open_rq.onupgradeneeded = function(e) {
15 db = e.target.result;
16 var objStore = db.createObjectStore("test", { keyPath: "key" });
17
18 for (var i = 0; i < 500; i++)
19 objStore.add({ key: i, val: "val_"+i });
20
21 var rq = objStore.add({ key: 500, val: "val_500" });
22
23 rq.onsuccess = t.step_func(function() {
24 for (var i = 999; i > 500; i--)
25 objStore.add({ key: i, val: "val_"+i });
26 });
27
28 objStore.createIndex('index', ['key', 'val']);
29 };
30
31 open_rq.onsuccess = function(e) {
32 var cursor_rq = db.transaction("test", "readwrite")
33 .objectStore("test")
34 .openCursor();
35
36 cursor_rq.onsuccess = t.step_func(function(e) {
37 var cursor = e.target.result,
38 store = e.target.source;
39 if (!cursor) {
40 assert_equals(count, 997, "cursor run count");
41
42 var rq = e.target.source.count();
43 rq.onsuccess = t.step_func(function(e) {
44 assert_equals(e.target.result, 995, "object count");
45 t.done();
46 });
47 return;
48 }
49
50 switch (cursor.key) {
51 case 10:
52 assert_equals(count, cursor.key, "count");
53 store.delete(11);
54 break;
55
56 case 12:
57 case 499:
58 case 500:
59 case 501:
60 assert_equals(count, cursor.key - 1, "count");
61 break;
62
63 // Delete the next key
64 case 510:
65 store.delete(511);
66 break;
67
68 // Delete randomly
69 case 512:
70 store.delete(611);
71 store.delete(499);
72 store.delete(500);
73 break;
74
75 // Delete and add a new key
76 case 520:
77 store.delete(521);
78 store.add({ key: 521, val: "new"});
79 break;
80
81 case 521:
82 assert_equals(cursor.value.val, "new");
83 break;
84
85 // We should only be here once although we're basically making t he index
86 // "heavier" with its new key.
87 case 530:
88 assert_equals(cursor.value.val, "val_530");
89 cursor.update({ key: 530, val: "val_531" })
90
91 store.get(530).onsuccess = t.step_func(function(e) {
92 assert_equals(e.target.result.val, "val_531");
93 });
94 break;
95
96 // Shouldn't happen.
97 case 11:
98 case 511:
99 case 611:
100 assert_unreached(cursor.key + " should be deleted and never run");
101 break;
102 }
103
104 cursor.continue();
105 count++;
106 });
107 };
108 </script>
109
110 <div id="log"> </div>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698