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

Side by Side Diff: tests/html/indexeddb_4_test.dart

Issue 12040059: Converting tests over to using event streams. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 10 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 library IndexedDB4Test; 1 library IndexedDB4Test;
2 import '../../pkg/unittest/lib/unittest.dart'; 2 import '../../pkg/unittest/lib/unittest.dart';
3 import '../../pkg/unittest/lib/html_config.dart'; 3 import '../../pkg/unittest/lib/html_config.dart';
4 import 'dart:html'; 4 import 'dart:html';
5 import 'dart:indexed_db'; 5 import 'dart:indexed_db';
6 6
7 // Test for KeyRange and Cursor. 7 // Test for KeyRange and Cursor.
8 8
9 const String DB_NAME = 'Test'; 9 const String DB_NAME = 'Test';
10 const String STORE_NAME = 'TEST'; 10 const String STORE_NAME = 'TEST';
(...skipping 14 matching lines...) Expand all
25 catch(e) { } // Chrome and Firefox 25 catch(e) { } // Chrome and Firefox
26 db.createObjectStore(STORE_NAME); 26 db.createObjectStore(STORE_NAME);
27 } 27 }
28 28
29 var db; 29 var db;
30 30
31 _openDb(afterOpen()) { 31 _openDb(afterOpen()) {
32 var request = window.indexedDB.open(DB_NAME, VERSION); 32 var request = window.indexedDB.open(DB_NAME, VERSION);
33 if (request is OpenDBRequest) { 33 if (request is OpenDBRequest) {
34 // New upgrade protocol. 34 // New upgrade protocol.
35 request.on.success.add(expectAsync1((e) { 35 request.onSuccess.listen(expectAsync1((e) {
36 db = e.target.result; 36 db = e.target.result;
37 afterOpen(); 37 afterOpen();
38 })); 38 }));
39 request.on.upgradeNeeded.add((e) { 39 request.onUpgradeNeeded.listen((e) {
40 guardAsync(() { 40 guardAsync(() {
41 _createObjectStore(e.target.result); 41 _createObjectStore(e.target.result);
42 }); 42 });
43 }); 43 });
44 request.on.error.add(fail('open')); 44 request.onError.listen(fail('open'));
45 } else { 45 } else {
46 // Legacy setVersion upgrade protocol. 46 // Legacy setVersion upgrade protocol.
47 request.on.success.add(expectAsync1((e) { 47 request.onSuccess.listen(expectAsync1((e) {
48 db = e.target.result; 48 db = e.target.result;
49 if (db.version != '$VERSION') { 49 if (db.version != '$VERSION') {
50 var setRequest = db.setVersion('$VERSION'); 50 var setRequest = db.setVersion('$VERSION');
51 setRequest.on.success.add( 51 setRequest.onSuccess.listen(
52 expectAsync1((e) { 52 expectAsync1((e) {
53 _createObjectStore(db); 53 _createObjectStore(db);
54 var transaction = e.target.result; 54 var transaction = e.target.result;
55 transaction.on.complete.add( 55 transaction.onComplete.listen(
56 expectAsync1((e) => afterOpen())); 56 expectAsync1((e) => afterOpen()));
57 transaction.on.error.add(fail('Upgrade')); 57 transaction.onError.listen(fail('Upgrade'));
58 })); 58 }));
59 setRequest.on.error.add(fail('setVersion error')); 59 setRequest.onError.listen(fail('setVersion error'));
60 } else { 60 } else {
61 afterOpen(); 61 afterOpen();
62 } 62 }
63 })); 63 }));
64 request.on.error.add(fail('open')); 64 request.onError.listen(fail('open'));
65 } 65 }
66 } 66 }
67 67
68 _createAndOpenDb(afterOpen()) { 68 _createAndOpenDb(afterOpen()) {
69 var request = window.indexedDB.deleteDatabase(DB_NAME); 69 var request = window.indexedDB.deleteDatabase(DB_NAME);
70 request.on.success.add(expectAsync1((e) { _openDb(afterOpen); })); 70 request.onSuccess.listen(expectAsync1((e) { _openDb(afterOpen); }));
71 request.on.error.add(fail('delete old Db')); 71 request.onError.listen(fail('delete old Db'));
72 } 72 }
73 73
74 writeItems(int index) { 74 writeItems(int index) {
75 if (index < 100) { 75 if (index < 100) {
76 var transaction = db.transaction([STORE_NAME], 'readwrite'); 76 var transaction = db.transaction([STORE_NAME], 'readwrite');
77 var request = transaction.objectStore(STORE_NAME) 77 var request = transaction.objectStore(STORE_NAME)
78 .put('Item $index', index); 78 .put('Item $index', index);
79 request.on.success.add(expectAsync1((e) { 79 request.onSuccess.listen(expectAsync1((e) {
80 writeItems(index + 1); 80 writeItems(index + 1);
81 } 81 }
82 )); 82 ));
83 request.on.error.add(fail('put')); 83 request.onError.listen(fail('put'));
84 } 84 }
85 } 85 }
86 86
87 setupDb() { _createAndOpenDb(() => writeItems(0)); } 87 setupDb() { _createAndOpenDb(() => writeItems(0)); }
88 88
89 testRange(range, expectedFirst, expectedLast) { 89 testRange(range, expectedFirst, expectedLast) {
90 Transaction txn = db.transaction(STORE_NAME, 'readonly'); 90 Transaction txn = db.transaction(STORE_NAME, 'readonly');
91 ObjectStore objectStore = txn.objectStore(STORE_NAME); 91 ObjectStore objectStore = txn.objectStore(STORE_NAME);
92 Request cursorRequest = objectStore.openCursor(range); 92 Request cursorRequest = objectStore.openCursor(range);
93 int itemCount = 0; 93 int itemCount = 0;
94 int firstKey = null; 94 int firstKey = null;
95 int lastKey = null; 95 int lastKey = null;
96 cursorRequest.on.success.add(expectAsync1((e) { 96 cursorRequest.onSuccess.listen(expectAsync1((e) {
97 var cursor = e.target.result; 97 var cursor = e.target.result;
98 if (cursor != null) { 98 if (cursor != null) {
99 if (firstKey == null) firstKey = cursor.key; 99 if (firstKey == null) firstKey = cursor.key;
100 lastKey = cursor.key; 100 lastKey = cursor.key;
101 itemCount += 1; 101 itemCount += 1;
102 expect(cursor.value, 'Item ${cursor.key}'); 102 expect(cursor.value, 'Item ${cursor.key}');
103 cursor.continueFunction(); 103 cursor.continueFunction();
104 } else { 104 } else {
105 // Done 105 // Done
106 expect(firstKey, expectedFirst); 106 expect(firstKey, expectedFirst);
107 expect(lastKey, expectedLast); 107 expect(lastKey, expectedLast);
108 if (expectedFirst == null) { 108 if (expectedFirst == null) {
109 expect(itemCount, isZero); 109 expect(itemCount, isZero);
110 } else { 110 } else {
111 expect(itemCount, expectedLast - expectedFirst + 1); 111 expect(itemCount, expectedLast - expectedFirst + 1);
112 } 112 }
113 } 113 }
114 }, 114 },
115 count: 1 + ((expectedFirst == null) ? 115 count: 1 + ((expectedFirst == null) ?
116 0 : (expectedLast - expectedFirst + 1)))); 116 0 : (expectedLast - expectedFirst + 1))));
117 cursorRequest.on.error.add(fail('openCursor')); 117 cursorRequest.onError.listen(fail('openCursor'));
118 } 118 }
119 119
120 only1() => testRange(new KeyRange.only(55), 55, 55); 120 only1() => testRange(new KeyRange.only(55), 55, 55);
121 only2() => testRange(new KeyRange.only(100), null, null); 121 only2() => testRange(new KeyRange.only(100), null, null);
122 only3() => testRange(new KeyRange.only(-1), null, null); 122 only3() => testRange(new KeyRange.only(-1), null, null);
123 123
124 lower1() => testRange(new KeyRange.lowerBound(40), 40, 99); 124 lower1() => testRange(new KeyRange.lowerBound(40), 40, 99);
125 // OPTIONALS lower2() => testRange(new KeyRange.lowerBound(40, open: true), 41 , 99); 125 // OPTIONALS lower2() => testRange(new KeyRange.lowerBound(40, open: true), 41 , 99);
126 lower2() => testRange(new KeyRange.lowerBound(40, true), 41, 99); 126 lower2() => testRange(new KeyRange.lowerBound(40, true), 41, 99);
127 // OPTIONALS lower3() => testRange(new KeyRange.lowerBound(40, open: false), 4 0, 99); 127 // OPTIONALS lower3() => testRange(new KeyRange.lowerBound(40, open: false), 4 0, 99);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 test('upper2', test_.upper2); 175 test('upper2', test_.upper2);
176 test('upper3', test_.upper3); 176 test('upper3', test_.upper3);
177 177
178 test('bound1', test_.bound1); 178 test('bound1', test_.bound1);
179 test('bound2', test_.bound2); 179 test('bound2', test_.bound2);
180 test('bound3', test_.bound3); 180 test('bound3', test_.bound3);
181 test('bound4', test_.bound4); 181 test('bound4', test_.bound4);
182 test('bound5', test_.bound5); 182 test('bound5', test_.bound5);
183 } 183 }
184 } 184 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698