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

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

Issue 10178014: Copy lib/dom tests that use dart:html to lib/html. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: . Created 8 years, 8 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
« no previous file with comments | « tests/dom/htmlelement_test.dart ('k') | tests/dom/indexeddb_2_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #library('IndexedDB1Test');
2 #import('../../lib/unittest/unittest.dart');
3 #import('../../lib/unittest/html_config.dart');
4 #import('dart:html');
5
6 final String DB_NAME = 'Test';
7 final String STORE_NAME = 'TEST';
8 final String VERSION = '1';
9
10 testReadWrite(key, value, check,
11 [dbName = DB_NAME,
12 storeName = STORE_NAME,
13 version = VERSION]) => () {
14 var db;
15
16 fail(e) {
17 callbackDone();
18 Expect.fail('IndexedDB failure');
19 }
20
21 createObjectStore() {
22 var store = db.createObjectStore(storeName);
23 Expect.isNotNull(store);
24 }
25
26 step2() {
27 var transaction = db.transaction(storeName, IDBTransaction.READ_ONLY);
28 var request = transaction.objectStore(storeName).getObject(key);
29 request.on.success.add((e) {
30 var object = e.target.result;
31 check(value, object);
32 callbackDone();
33 });
34 request.on.error.add(fail);
35 }
36
37 step1() {
38 var transaction = db.transaction([storeName], IDBTransaction.READ_WRITE);
39 var request = transaction.objectStore(storeName).put(value, key);
40 request.on.success.add((e) { step2(); });
41 request.on.error.add(fail);
42 }
43
44 initDb(e) {
45 db = e.target.result;
46 if (version != db.version) {
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
49 // difference and make it work?
50 var request = db.setVersion(version);
51 request.on.success.add((e) { createObjectStore(); step1(); });
52 request.on.error.add(fail);
53 } else {
54 step1();
55 }
56 }
57
58 var request = window.webkitIndexedDB.open(dbName);
59 Expect.isNotNull(request);
60 request.on.success.add(initDb);
61 request.on.error.add(fail);
62 };
63
64 testReadWriteTyped(key, value, check,
65 [dbName = DB_NAME,
66 storeName = STORE_NAME,
67 version = VERSION]) => () {
68 IDBDatabase db;
69
70 fail(e) {
71 callbackDone();
72 Expect.fail('IndexedDB failure');
73 }
74
75 createObjectStore() {
76 IDBObjectStore store = db.createObjectStore(storeName);
77 Expect.isNotNull(store);
78 }
79
80 step2() {
81 IDBTransaction transaction =
82 db.transaction(storeName, IDBTransaction.READ_ONLY);
83 IDBRequest request = transaction.objectStore(storeName).getObject(key);
84 request.on.success.add((e) {
85 var object = e.target.result;
86 check(value, object);
87 callbackDone();
88 });
89 request.on.error.add(fail);
90 }
91
92 step1() {
93 IDBTransaction transaction =
94 db.transaction([storeName], IDBTransaction.READ_WRITE);
95 IDBRequest request = transaction.objectStore(storeName).put(value, key);
96 request.on.success.add((e) { step2(); });
97 request.on.error.add(fail);
98 }
99
100 initDb(e) {
101 db = e.target.result;
102 if (version != db.version) {
103 IDBRequest request = db.setVersion(version);
104 request.request.on.success.add((e) { createObjectStore(); step1(); });
105 request.on.error.add(fail);
106 } else {
107 step1();
108 }
109 }
110
111 IDBRequest request = window.webkitIndexedDB.open(dbName);
112 Expect.isNotNull(request);
113 request.on.success.add(initDb);
114 request.on.error.add(fail);
115 };
116
117 tests_dynamic() {
118 asyncTest('test1', 1, testReadWrite(123, 'Hoot!', Expect.equals));
119 asyncTest('test2', 1, testReadWrite(123, 12345, Expect.equals));
120 asyncTest('test3', 1, testReadWrite(123, [1,2,3], Expect.listEquals));
121 asyncTest('test4', 1, testReadWrite(123, const [2, 3, 4], Expect.listEquals));
122 }
123
124 tests_typed() {
125 asyncTest('test1', 1, testReadWriteTyped(123, 'Hoot!', Expect.equals));
126 asyncTest('test2', 1, testReadWriteTyped(123, 12345, Expect.equals));
127 asyncTest('test3', 1, testReadWriteTyped(123, [1,2,3], Expect.listEquals));
128 asyncTest('test4', 1,
129 testReadWriteTyped(123, const [2, 3, 4], Expect.listEquals));
130 }
131
132 main() {
133 useHtmlConfiguration();
134
135 tests_dynamic();
136 tests_typed();
137 }
OLDNEW
« no previous file with comments | « tests/dom/htmlelement_test.dart ('k') | tests/dom/indexeddb_2_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698