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

Side by Side Diff: tests/dom/indexeddb_2_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 #import('dart:coreimpl'); 5 #import('dart:coreimpl');
6 #import('utils.dart'); 6 #import('utils.dart');
7 7
8 // Write and re-read Maps: simple Maps; Maps with DAGs; Maps with cycles. 8 // Write and re-read Maps: simple Maps; Maps with DAGs; Maps with cycles.
9 9
10 final String DB_NAME = 'Test'; 10 final String DB_NAME = 'Test';
11 final String STORE_NAME = 'TEST'; 11 final String STORE_NAME = 'TEST';
12 final String VERSION = '1'; 12 final String VERSION = '1';
13 13
14 testReadWrite(key, value, check, 14 testReadWrite(key, value, check,
15 [dbName = DB_NAME, 15 [dbName = DB_NAME,
16 storeName = STORE_NAME, 16 storeName = STORE_NAME,
17 version = VERSION]) => () { 17 version = VERSION]) => () {
18 var db; 18 var db;
19 19
20 fail(e) { 20 fail(e) {
21 callbackDone(); 21 guardAsync(() {
22 Expect.fail('IndexedDB failure'); 22 Expect.fail('IndexedDB failure');
23 });
23 } 24 }
24 25
25 createObjectStore() { 26 createObjectStore() {
26 var store = db.createObjectStore(storeName); 27 var store = db.createObjectStore(storeName);
27 Expect.isNotNull(store); 28 Expect.isNotNull(store);
28 } 29 }
29 30
30 step2() { 31 step2(e) {
31 var transaction = db.transaction(storeName, IDBTransaction.READ_ONLY); 32 var transaction = db.transaction(storeName, IDBTransaction.READ_ONLY);
32 var request = transaction.objectStore(storeName).getObject(key); 33 var request = transaction.objectStore(storeName).getObject(key);
33 request.addEventListener('success', (e) { 34 request.addEventListener('success', expectAsync1((e) {
34 var object = e.target.result; 35 var object = e.target.result;
35 check(value, object); 36 check(value, object);
36 callbackDone(); 37 }));
37 });
38 request.addEventListener('error', fail); 38 request.addEventListener('error', fail);
39 } 39 }
40 40
41 step1() { 41 step1() {
42 var transaction = db.transaction([storeName], IDBTransaction.READ_WRITE); 42 var transaction = db.transaction([storeName], IDBTransaction.READ_WRITE);
43 var request = transaction.objectStore(storeName).put(value, key); 43 var request = transaction.objectStore(storeName).put(value, key);
44 request.addEventListener('success', (e) { step2(); }); 44 request.addEventListener('success', expectAsync1(step2));
45 request.addEventListener('error', fail); 45 request.addEventListener('error', fail);
46 } 46 }
47 47
48 initDb(e) { 48 initDb(e) {
49 db = e.target.result; 49 db = e.target.result;
50 if (version != db.version) { 50 if (version != db.version) {
51 // TODO. Some browsers do this the w3 way - passing the version to the 51 // TODO. Some browsers do this the w3 way - passing the version to the
52 // open call and listening to onversionchange. Can we feature-detect the 52 // open call and listening to onversionchange. Can we feature-detect the
53 // difference and make it work? 53 // difference and make it work?
54 var request = db.setVersion(version); 54 var request = db.setVersion(version);
55 request.addEventListener('success', 55 request.addEventListener('success',
56 (e) { createObjectStore(); step1(); }); 56 expectAsync1((e) {
57 createObjectStore();
58 step1();
59 })
60 );
57 request.addEventListener('error', fail); 61 request.addEventListener('error', fail);
58 } else { 62 } else {
59 step1(); 63 step1();
60 } 64 }
61 } 65 }
62 66
63 var request = window.webkitIndexedDB.open(dbName); 67 var request = window.webkitIndexedDB.open(dbName);
64 Expect.isNotNull(request); 68 Expect.isNotNull(request);
65 request.addEventListener('success', initDb); 69 request.addEventListener('success', expectAsync1(initDb));
66 request.addEventListener('error', fail); 70 request.addEventListener('error', fail);
67 }; 71 };
68 72
69 73
70 tests_dynamic() { 74 tests_dynamic() {
71 var obj1 = {'a': 100, 'b': 's'}; 75 var obj1 = {'a': 100, 'b': 's'};
72 var obj2 = {'x': obj1, 'y': obj1}; // DAG. 76 var obj2 = {'x': obj1, 'y': obj1}; // DAG.
73 77
74 var obj3 = {}; 78 var obj3 = {};
75 obj3['a'] = 100; 79 obj3['a'] = 100;
76 obj3['b'] = obj3; // Cycle. 80 obj3['b'] = obj3; // Cycle.
77 81
78 var obj4 = new SplayTreeMap<String, Dynamic>(); // Different implementation. 82 var obj4 = new SplayTreeMap<String, Dynamic>(); // Different implementation.
79 obj4['a'] = 100; 83 obj4['a'] = 100;
80 obj4['b'] = 's'; 84 obj4['b'] = 's';
81 85
82 asyncTest('test_simple', 1, testReadWrite(123, obj1, verifyGraph)); 86 test('test_simple', testReadWrite(123, obj1, verifyGraph));
83 asyncTest('test_DAG', 1, testReadWrite(123, obj2, verifyGraph)); 87 test('test_DAG', testReadWrite(123, obj2, verifyGraph));
84 asyncTest('test_cycle', 1, testReadWrite(123, obj3, verifyGraph)); 88 test('test_cycle', testReadWrite(123, obj3, verifyGraph));
85 asyncTest('test_simple_splay', 1, testReadWrite(123, obj4, verifyGraph)); 89 test('test_simple_splay', testReadWrite(123, obj4, verifyGraph));
86 } 90 }
87 91
88 main() { 92 main() {
89 useDomConfiguration(); 93 useDomConfiguration();
90 94
91 tests_dynamic(); 95 tests_dynamic();
92 } 96 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698