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

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

Issue 10222026: Migrate dom tests to dart:html. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebase & address comments. 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/html_config.dart');
4 #import('dart:dom'); 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 callbackDone();
18 Expect.fail('IndexedDB failure'); 18 Expect.fail('IndexedDB failure');
19 } 19 }
20 20
21 createObjectStore() { 21 createObjectStore() {
22 var store = db.createObjectStore(storeName); 22 var store = db.createObjectStore(storeName);
23 Expect.isNotNull(store); 23 Expect.isNotNull(store);
24 } 24 }
25 25
26 step2() { 26 step2() {
27 var transaction = db.transaction(storeName, IDBTransaction.READ_ONLY); 27 var transaction = db.transaction(storeName, IDBTransaction.READ_ONLY);
28 var request = transaction.objectStore(storeName).getObject(key); 28 var request = transaction.objectStore(storeName).getObject(key);
29 request.addEventListener('success', (e) { 29 request.on.success.add((e) {
30 var object = e.target.result; 30 var object = e.target.result;
31 check(value, object); 31 check(value, object);
32 callbackDone(); 32 callbackDone();
33 }); 33 });
34 request.addEventListener('error', 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.addEventListener('success', (e) { step2(); }); 40 request.on.success.add((e) { step2(); });
41 request.addEventListener('error', 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.addEventListener('success', 51 request.on.success.add((e) { createObjectStore(); step1(); });
52 (e) { createObjectStore(); step1(); }); 52 request.on.error.add(fail);
53 request.addEventListener('error', fail);
54 } else { 53 } else {
55 step1(); 54 step1();
56 } 55 }
57 } 56 }
58 57
59 var request = window.webkitIndexedDB.open(dbName); 58 var request = window.webkitIndexedDB.open(dbName);
60 Expect.isNotNull(request); 59 Expect.isNotNull(request);
61 request.addEventListener('success', initDb); 60 request.on.success.add(initDb);
62 request.addEventListener('error', fail); 61 request.on.error.add(fail);
63 }; 62 };
64 63
65 testReadWriteTyped(key, value, check, 64 testReadWriteTyped(key, value, check,
66 [dbName = DB_NAME, 65 [dbName = DB_NAME,
67 storeName = STORE_NAME, 66 storeName = STORE_NAME,
68 version = VERSION]) => () { 67 version = VERSION]) => () {
69 IDBDatabase db; 68 IDBDatabase db;
70 69
71 fail(e) { 70 fail(e) {
72 callbackDone(); 71 callbackDone();
73 Expect.fail('IndexedDB failure'); 72 Expect.fail('IndexedDB failure');
74 } 73 }
75 74
76 createObjectStore() { 75 createObjectStore() {
77 IDBObjectStore store = db.createObjectStore(storeName); 76 IDBObjectStore store = db.createObjectStore(storeName);
78 Expect.isNotNull(store); 77 Expect.isNotNull(store);
79 } 78 }
80 79
81 step2() { 80 step2() {
82 IDBTransaction transaction = 81 IDBTransaction transaction =
83 db.transaction(storeName, IDBTransaction.READ_ONLY); 82 db.transaction(storeName, IDBTransaction.READ_ONLY);
84 IDBRequest request = transaction.objectStore(storeName).getObject(key); 83 IDBRequest request = transaction.objectStore(storeName).getObject(key);
85 request.addEventListener('success', (e) { 84 request.on.success.add((e) {
86 var object = e.target.result; 85 var object = e.target.result;
87 check(value, object); 86 check(value, object);
88 callbackDone(); 87 callbackDone();
89 }); 88 });
90 request.addEventListener('error', fail); 89 request.on.error.add(fail);
91 } 90 }
92 91
93 step1() { 92 step1() {
94 IDBTransaction transaction = 93 IDBTransaction transaction =
95 db.transaction([storeName], IDBTransaction.READ_WRITE); 94 db.transaction([storeName], IDBTransaction.READ_WRITE);
96 IDBRequest request = transaction.objectStore(storeName).put(value, key); 95 IDBRequest request = transaction.objectStore(storeName).put(value, key);
97 request.addEventListener('success', (e) { step2(); }); 96 request.on.success.add((e) { step2(); });
98 request.addEventListener('error', fail); 97 request.on.error.add(fail);
99 } 98 }
100 99
101 initDb(e) { 100 initDb(e) {
102 db = e.target.result; 101 db = e.target.result;
103 if (version != db.version) { 102 if (version != db.version) {
104 IDBRequest request = db.setVersion(version); 103 IDBRequest request = db.setVersion(version);
105 request.addEventListener('success', 104 request.request.on.success.add((e) { createObjectStore(); step1(); });
106 (e) { createObjectStore(); step1(); }); 105 request.on.error.add(fail);
107 request.addEventListener('error', fail);
108 } else { 106 } else {
109 step1(); 107 step1();
110 } 108 }
111 } 109 }
112 110
113 IDBRequest request = window.webkitIndexedDB.open(dbName); 111 IDBRequest request = window.webkitIndexedDB.open(dbName);
114 Expect.isNotNull(request); 112 Expect.isNotNull(request);
115 request.addEventListener('success', initDb); 113 request.on.success.add(initDb);
116 request.addEventListener('error', fail); 114 request.on.error.add(fail);
117 }; 115 };
118 116
119 tests_dynamic() { 117 tests_dynamic() {
120 asyncTest('test1', 1, testReadWrite(123, 'Hoot!', Expect.equals)); 118 asyncTest('test1', 1, testReadWrite(123, 'Hoot!', Expect.equals));
121 asyncTest('test2', 1, testReadWrite(123, 12345, Expect.equals)); 119 asyncTest('test2', 1, testReadWrite(123, 12345, Expect.equals));
122 asyncTest('test3', 1, testReadWrite(123, [1,2,3], Expect.listEquals)); 120 asyncTest('test3', 1, testReadWrite(123, [1,2,3], Expect.listEquals));
123 asyncTest('test4', 1, testReadWrite(123, const [2, 3, 4], Expect.listEquals)); 121 asyncTest('test4', 1, testReadWrite(123, const [2, 3, 4], Expect.listEquals));
124 } 122 }
125 123
126 tests_typed() { 124 tests_typed() {
127 asyncTest('test1', 1, testReadWriteTyped(123, 'Hoot!', Expect.equals)); 125 asyncTest('test1', 1, testReadWriteTyped(123, 'Hoot!', Expect.equals));
128 asyncTest('test2', 1, testReadWriteTyped(123, 12345, Expect.equals)); 126 asyncTest('test2', 1, testReadWriteTyped(123, 12345, Expect.equals));
129 asyncTest('test3', 1, testReadWriteTyped(123, [1,2,3], Expect.listEquals)); 127 asyncTest('test3', 1, testReadWriteTyped(123, [1,2,3], Expect.listEquals));
130 asyncTest('test4', 1, 128 asyncTest('test4', 1,
131 testReadWriteTyped(123, const [2, 3, 4], Expect.listEquals)); 129 testReadWriteTyped(123, const [2, 3, 4], Expect.listEquals));
132 } 130 }
133 131
134 main() { 132 main() {
135 useDomConfiguration(); 133 useHtmlConfiguration();
136 134
137 tests_dynamic(); 135 tests_dynamic();
138 tests_typed(); 136 tests_typed();
139 } 137 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698