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

Side by Side Diff: tests/dom/indexeddb_1_test.dart

Issue 10412015: aChange all asyncTest/callbackDone style tests to use the new expectAsync/ (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 7 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('IndexedDB1Test'); 1 #library('IndexedDB1Test');
2 #import('../../lib/unittest/unittest.dart'); 2 #import('../../lib/unittest/unittest.dart');
3 #import('../../lib/unittest/dom_config.dart'); 3 #import('../../lib/unittest/dom_config.dart');
4 #import('dart:dom_deprecated'); 4 #import('dart:dom_deprecated');
5 5
6 final String DB_NAME = 'Test'; 6 final String DB_NAME = 'Test';
7 final String STORE_NAME = 'TEST'; 7 final String STORE_NAME = 'TEST';
8 final String VERSION = '1'; 8 final String VERSION = '1';
9 9
10 testReadWrite(key, value, check, 10 testReadWrite(key, value, check,
11 [dbName = DB_NAME, 11 [dbName = DB_NAME,
12 storeName = STORE_NAME, 12 storeName = STORE_NAME,
13 version = VERSION]) => () { 13 version = VERSION]) => () {
14 var db; 14 var db;
15 15
16 fail(e) { 16 fail(e) {
17 callbackDone(); 17 guardAsync(() {
18 Expect.fail('IndexedDB failure'); 18 Expect.fail('IndexedDB failure');
19 });
19 } 20 }
20 21
21 createObjectStore() { 22 createObjectStore() {
22 var store = db.createObjectStore(storeName); 23 var store = db.createObjectStore(storeName);
23 Expect.isNotNull(store); 24 Expect.isNotNull(store);
24 } 25 }
25 26
26 step2() { 27 step2(e) {
27 var transaction = db.transaction(storeName, IDBTransaction.READ_ONLY); 28 var transaction = db.transaction(storeName, IDBTransaction.READ_ONLY);
28 var request = transaction.objectStore(storeName).getObject(key); 29 var request = transaction.objectStore(storeName).getObject(key);
29 request.addEventListener('success', (e) { 30 request.addEventListener('success',
31 expectAsync1((e) {
30 var object = e.target.result; 32 var object = e.target.result;
31 check(value, object); 33 check(value, object);
32 callbackDone(); 34 })
33 }); 35 );
34 request.addEventListener('error', fail); 36 request.addEventListener('error', fail);
35 } 37 }
36 38
37 step1() { 39 step1() {
38 var transaction = db.transaction([storeName], IDBTransaction.READ_WRITE); 40 var transaction = db.transaction([storeName], IDBTransaction.READ_WRITE);
39 var request = transaction.objectStore(storeName).put(value, key); 41 var request = transaction.objectStore(storeName).put(value, key);
40 request.addEventListener('success', (e) { step2(); }); 42 request.addEventListener('success', expectAsync1(step2));
41 request.addEventListener('error', fail); 43 request.addEventListener('error', fail);
42 } 44 }
43 45
44 initDb(e) { 46 initDb(e) {
45 db = e.target.result; 47 db = e.target.result;
46 if (version != db.version) { 48 if (version != db.version) {
47 // TODO. Some browsers do this the w3 way - passing the version to the 49 // TODO. Some browsers do this the w3 way - passing the version to the
48 // open call and listening to onversionchange. Can we feature-detect the 50 // open call and listening to onversionchange. Can we feature-detect the
49 // difference and make it work? 51 // difference and make it work?
50 var request = db.setVersion(version); 52 var request = db.setVersion(version);
51 request.addEventListener('success', 53 request.addEventListener('success',
52 (e) { createObjectStore(); step1(); }); 54 expectAsync1((e) {
55 createObjectStore();
56 step1();
57 })
58 );
53 request.addEventListener('error', fail); 59 request.addEventListener('error', fail);
54 } else { 60 } else {
55 step1(); 61 step1();
56 } 62 }
57 } 63 }
58 64
59 var request = window.webkitIndexedDB.open(dbName); 65 var request = window.webkitIndexedDB.open(dbName);
60 Expect.isNotNull(request); 66 Expect.isNotNull(request);
61 request.addEventListener('success', initDb); 67 request.addEventListener('success', expectAsync1(initDb));
62 request.addEventListener('error', fail); 68 request.addEventListener('error', fail);
63 }; 69 };
64 70
65 testReadWriteTyped(key, value, check, 71 testReadWriteTyped(key, value, check,
66 [dbName = DB_NAME, 72 [dbName = DB_NAME,
67 storeName = STORE_NAME, 73 storeName = STORE_NAME,
68 version = VERSION]) => () { 74 version = VERSION]) => () {
69 IDBDatabase db; 75 IDBDatabase db;
70 76
71 fail(e) { 77 fail(e) {
72 callbackDone(); 78 guardAsync(() {
73 Expect.fail('IndexedDB failure'); 79 Expect.fail('IndexedDB failure');
80 });
74 } 81 }
75 82
76 createObjectStore() { 83 createObjectStore() {
77 IDBObjectStore store = db.createObjectStore(storeName); 84 IDBObjectStore store = db.createObjectStore(storeName);
78 Expect.isNotNull(store); 85 Expect.isNotNull(store);
79 } 86 }
80 87
81 step2() { 88 step2(e) {
82 IDBTransaction transaction = 89 IDBTransaction transaction =
83 db.transaction(storeName, IDBTransaction.READ_ONLY); 90 db.transaction(storeName, IDBTransaction.READ_ONLY);
84 IDBRequest request = transaction.objectStore(storeName).getObject(key); 91 IDBRequest request = transaction.objectStore(storeName).getObject(key);
85 request.addEventListener('success', (e) { 92 request.addEventListener('success',
93 expectAsync1((e) {
86 var object = e.target.result; 94 var object = e.target.result;
87 check(value, object); 95 check(value, object);
88 callbackDone(); 96 })
89 }); 97 );
90 request.addEventListener('error', fail); 98 request.addEventListener('error', fail);
91 } 99 }
92 100
93 step1() { 101 step1() {
94 IDBTransaction transaction = 102 IDBTransaction transaction =
95 db.transaction([storeName], IDBTransaction.READ_WRITE); 103 db.transaction([storeName], IDBTransaction.READ_WRITE);
96 IDBRequest request = transaction.objectStore(storeName).put(value, key); 104 IDBRequest request = transaction.objectStore(storeName).put(value, key);
97 request.addEventListener('success', (e) { step2(); }); 105 request.addEventListener('success', expectAsync1(step2));
98 request.addEventListener('error', fail); 106 request.addEventListener('error', fail);
99 } 107 }
100 108
101 initDb(e) { 109 initDb(e) {
102 db = e.target.result; 110 db = e.target.result;
103 if (version != db.version) { 111 if (version != db.version) {
104 IDBRequest request = db.setVersion(version); 112 IDBRequest request = db.setVersion(version);
105 request.addEventListener('success', 113 request.addEventListener('success',
106 (e) { createObjectStore(); step1(); }); 114 expectAsync1((e) {
115 createObjectStore();
116 step1();
117 })
118 );
107 request.addEventListener('error', fail); 119 request.addEventListener('error', fail);
108 } else { 120 } else {
109 step1(); 121 step1();
110 } 122 }
111 } 123 }
112 124
113 IDBRequest request = window.webkitIndexedDB.open(dbName); 125 IDBRequest request = window.webkitIndexedDB.open(dbName);
114 Expect.isNotNull(request); 126 Expect.isNotNull(request);
115 request.addEventListener('success', initDb); 127 request.addEventListener('success', expectAsync1(initDb));
116 request.addEventListener('error', fail); 128 request.addEventListener('error', fail);
117 }; 129 };
118 130
119 tests_dynamic() { 131 tests_dynamic() {
120 asyncTest('test1', 1, testReadWrite(123, 'Hoot!', Expect.equals)); 132 test('test1', testReadWrite(123, 'Hoot!', Expect.equals));
121 asyncTest('test2', 1, testReadWrite(123, 12345, Expect.equals)); 133 test('test2', testReadWrite(123, 12345, Expect.equals));
122 asyncTest('test3', 1, testReadWrite(123, [1,2,3], Expect.listEquals)); 134 test('test3', testReadWrite(123, [1,2,3], Expect.listEquals));
123 asyncTest('test4', 1, testReadWrite(123, const [2, 3, 4], Expect.listEquals)); 135 test('test4', testReadWrite(123, const [2, 3, 4], Expect.listEquals));
124 } 136 }
125 137
126 tests_typed() { 138 tests_typed() {
127 asyncTest('test1', 1, testReadWriteTyped(123, 'Hoot!', Expect.equals)); 139 test('test1', testReadWriteTyped(123, 'Hoot!', Expect.equals));
128 asyncTest('test2', 1, testReadWriteTyped(123, 12345, Expect.equals)); 140 test('test2', testReadWriteTyped(123, 12345, Expect.equals));
129 asyncTest('test3', 1, testReadWriteTyped(123, [1,2,3], Expect.listEquals)); 141 test('test3', testReadWriteTyped(123, [1,2,3], Expect.listEquals));
130 asyncTest('test4', 1, 142 test('test4', testReadWriteTyped(123, const [2, 3, 4], Expect.listEquals));
131 testReadWriteTyped(123, const [2, 3, 4], Expect.listEquals));
132 } 143 }
133 144
134 main() { 145 main() {
135 useDomConfiguration(); 146 useDomConfiguration();
136 147
137 tests_dynamic(); 148 tests_dynamic();
138 tests_typed(); 149 tests_typed();
139 } 150 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698