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

Side by Side Diff: tests/html/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/html_config.dart'); 3 #import('../../lib/unittest/html_config.dart');
4 #import('dart:html'); 4 #import('dart:html');
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.on.success.add((e) { 30 request.on.success.add(expectAsync1((e) {
30 var object = e.target.result; 31 var object = e.target.result;
31 check(value, object); 32 check(value, object);
32 callbackDone(); 33 }));
33 });
34 request.on.error.add(fail); 34 request.on.error.add(fail);
35 } 35 }
36 36
37 step1() { 37 step1() {
38 var transaction = db.transaction([storeName], IDBTransaction.READ_WRITE); 38 var transaction = db.transaction([storeName], IDBTransaction.READ_WRITE);
39 var request = transaction.objectStore(storeName).put(value, key); 39 var request = transaction.objectStore(storeName).put(value, key);
40 request.on.success.add((e) { step2(); }); 40 request.on.success.add(expectAsync1(step2));
41 request.on.error.add(fail); 41 request.on.error.add(fail);
42 } 42 }
43 43
44 initDb(e) { 44 initDb(e) {
45 db = e.target.result; 45 db = e.target.result;
46 if (version != db.version) { 46 if (version != db.version) {
47 // TODO. Some browsers do this the w3 way - passing the version to the 47 // 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 48 // open call and listening to onversionchange. Can we feature-detect the
49 // difference and make it work? 49 // difference and make it work?
50 var request = db.setVersion(version); 50 var request = db.setVersion(version);
51 request.on.success.add((e) { createObjectStore(); step1(); }); 51 request.on.success.add(
52 expectAsync1((e) {
53 createObjectStore();
54 step1();
55 })
56 );
52 request.on.error.add(fail); 57 request.on.error.add(fail);
53 } else { 58 } else {
54 step1(); 59 step1();
55 } 60 }
56 } 61 }
57 62
58 var request = window.webkitIndexedDB.open(dbName); 63 var request = window.webkitIndexedDB.open(dbName);
59 Expect.isNotNull(request); 64 Expect.isNotNull(request);
60 request.on.success.add(initDb); 65 request.on.success.add(expectAsync1(initDb));
61 request.on.error.add(fail); 66 request.on.error.add(fail);
62 }; 67 };
63 68
64 testReadWriteTyped(key, value, check, 69 testReadWriteTyped(key, value, check,
65 [dbName = DB_NAME, 70 [dbName = DB_NAME,
66 storeName = STORE_NAME, 71 storeName = STORE_NAME,
67 version = VERSION]) => () { 72 version = VERSION]) => () {
68 IDBDatabase db; 73 IDBDatabase db;
69 74
70 fail(e) { 75 fail(e) {
71 callbackDone(); 76 guardAsync(() {
72 Expect.fail('IndexedDB failure'); 77 Expect.fail('IndexedDB failure');
78 });
73 } 79 }
74 80
75 createObjectStore() { 81 createObjectStore() {
76 IDBObjectStore store = db.createObjectStore(storeName); 82 IDBObjectStore store = db.createObjectStore(storeName);
77 Expect.isNotNull(store); 83 Expect.isNotNull(store);
78 } 84 }
79 85
80 step2() { 86 step2(e) {
81 IDBTransaction transaction = 87 IDBTransaction transaction =
82 db.transaction(storeName, IDBTransaction.READ_ONLY); 88 db.transaction(storeName, IDBTransaction.READ_ONLY);
83 IDBRequest request = transaction.objectStore(storeName).getObject(key); 89 IDBRequest request = transaction.objectStore(storeName).getObject(key);
84 request.on.success.add((e) { 90 request.on.success.add(expectAsync1((e) {
85 var object = e.target.result; 91 var object = e.target.result;
86 check(value, object); 92 check(value, object);
87 callbackDone(); 93 }));
88 });
89 request.on.error.add(fail); 94 request.on.error.add(fail);
90 } 95 }
91 96
92 step1() { 97 step1() {
93 IDBTransaction transaction = 98 IDBTransaction transaction =
94 db.transaction([storeName], IDBTransaction.READ_WRITE); 99 db.transaction([storeName], IDBTransaction.READ_WRITE);
95 IDBRequest request = transaction.objectStore(storeName).put(value, key); 100 IDBRequest request = transaction.objectStore(storeName).put(value, key);
96 request.on.success.add((e) { step2(); }); 101 request.on.success.add(expectAsync1(step2));
97 request.on.error.add(fail); 102 request.on.error.add(fail);
98 } 103 }
99 104
100 initDb(e) { 105 initDb(e) {
101 db = e.target.result; 106 db = e.target.result;
102 if (version != db.version) { 107 if (version != db.version) {
103 IDBRequest request = db.setVersion(version); 108 IDBRequest request = db.setVersion(version);
104 request.request.on.success.add((e) { createObjectStore(); step1(); }); 109 request.on.success.add(
110 expectAsync1((e) {
111 createObjectStore();
112 step1();
113 })
114 );
105 request.on.error.add(fail); 115 request.on.error.add(fail);
106 } else { 116 } else {
107 step1(); 117 step1();
108 } 118 }
109 } 119 }
110 120
111 IDBRequest request = window.webkitIndexedDB.open(dbName); 121 IDBRequest request = window.webkitIndexedDB.open(dbName);
112 Expect.isNotNull(request); 122 Expect.isNotNull(request);
113 request.on.success.add(initDb); 123 request.on.success.add(expectAsync1(initDb));
114 request.on.error.add(fail); 124 request.on.error.add(fail);
115 }; 125 };
116 126
117 tests_dynamic() { 127 tests_dynamic() {
118 asyncTest('test1', 1, testReadWrite(123, 'Hoot!', Expect.equals)); 128 test('test1', testReadWrite(123, 'Hoot!', Expect.equals));
119 asyncTest('test2', 1, testReadWrite(123, 12345, Expect.equals)); 129 test('test2', testReadWrite(123, 12345, Expect.equals));
120 asyncTest('test3', 1, testReadWrite(123, [1,2,3], Expect.listEquals)); 130 test('test3', testReadWrite(123, [1,2,3], Expect.listEquals));
121 asyncTest('test4', 1, testReadWrite(123, const [2, 3, 4], Expect.listEquals)); 131 test('test4', testReadWrite(123, const [2, 3, 4], Expect.listEquals));
122 } 132 }
123 133
124 tests_typed() { 134 tests_typed() {
125 asyncTest('test1', 1, testReadWriteTyped(123, 'Hoot!', Expect.equals)); 135 test('test1', testReadWriteTyped(123, 'Hoot!', Expect.equals));
126 asyncTest('test2', 1, testReadWriteTyped(123, 12345, Expect.equals)); 136 test('test2', testReadWriteTyped(123, 12345, Expect.equals));
127 asyncTest('test3', 1, testReadWriteTyped(123, [1,2,3], Expect.listEquals)); 137 test('test3', testReadWriteTyped(123, [1,2,3], Expect.listEquals));
128 asyncTest('test4', 1, 138 test('test4',
129 testReadWriteTyped(123, const [2, 3, 4], Expect.listEquals)); 139 testReadWriteTyped(123, const [2, 3, 4], Expect.listEquals));
130 } 140 }
131 141
132 main() { 142 main() {
133 useHtmlConfiguration(); 143 useHtmlConfiguration();
134 144
135 tests_dynamic(); 145 tests_dynamic();
136 tests_typed(); 146 tests_typed();
137 } 147 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698