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

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

Powered by Google App Engine
This is Rietveld 408576698