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

Side by Side Diff: tests/html/indexeddb_2_test.dart

Issue 10540016: indexedDB work (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 6 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 #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';
(...skipping 11 matching lines...) Expand all
22 Expect.fail('IndexedDB failure'); 22 Expect.fail('IndexedDB failure');
23 }); 23 });
24 } 24 }
25 25
26 createObjectStore() { 26 createObjectStore() {
27 var store = db.createObjectStore(storeName); 27 var store = db.createObjectStore(storeName);
28 Expect.isNotNull(store); 28 Expect.isNotNull(store);
29 } 29 }
30 30
31 step2(e) { 31 step2(e) {
32 var transaction = db.transaction(storeName, IDBTransaction.READ_ONLY); 32 var transaction = db.transaction(storeName, 'readonly');
33 var request = transaction.objectStore(storeName).getObject(key); 33 var request = transaction.objectStore(storeName).getObject(key);
34 request.on.success.add(expectAsync1((e) { 34 request.on.success.add(expectAsync1((e) {
35 var object = e.target.result; 35 var object = e.target.result;
36 check(value, object); 36 check(value, object);
37 }) 37 })
38 ); 38 );
39 request.on.error.add(fail); 39 request.on.error.add(fail);
40 } 40 }
41 41
42 step1() { 42 step1() {
43 var transaction = db.transaction([storeName], IDBTransaction.READ_WRITE); 43 var transaction = db.transaction([storeName], 'readwrite');
44 var request = transaction.objectStore(storeName).put(value, key); 44 var request = transaction.objectStore(storeName).put(value, key);
45 request.on.success.add(expectAsync1(step2)); 45 request.on.success.add(expectAsync1(step2));
46 request.on.error.add(fail); 46 request.on.error.add(fail);
47 } 47 }
48 48
49 initDb(e) { 49 initDb(e) {
50 db = e.target.result; 50 db = e.target.result;
51 if (version != db.version) { 51 if (version != db.version) {
52 // TODO. Some browsers do this the w3 way - passing the version to the 52 // TODO. Some browsers do this the w3 way - passing the version to the
53 // open call and listening to onversionchange. Can we feature-detect the 53 // open call and listening to onversionchange. Can we feature-detect the
54 // difference and make it work? 54 // difference and make it work?
55 var request = db.setVersion(version); 55 var request = db.setVersion(version);
56 request.on.success.add( 56 request.on.success.add(
57 expectAsync1((e) { 57 expectAsync1((e) {
58 createObjectStore(); 58 createObjectStore();
59 step1(); 59 step1();
60 }) 60 })
61 ); 61 );
62 request.on.error.add(fail); 62 request.on.error.add(fail);
63 } else { 63 } else {
64 step1(); 64 step1();
65 } 65 }
66 } 66 }
67 67
68 var request = window.webkitIndexedDB.open(dbName); 68 var request = window.indexedDB.open(dbName);
69 Expect.isNotNull(request); 69 Expect.isNotNull(request);
70 request.on.success.add(expectAsync1(initDb)); 70 request.on.success.add(expectAsync1(initDb));
71 request.on.error.add(fail); 71 request.on.error.add(fail);
72 }; 72 };
73 73
74 74
75 tests_dynamic() { 75 tests_dynamic() {
76 var obj1 = {'a': 100, 'b': 's'}; 76 var obj1 = {'a': 100, 'b': 's'};
77 var obj2 = {'x': obj1, 'y': obj1}; // DAG. 77 var obj2 = {'x': obj1, 'y': obj1}; // DAG.
78 78
79 var obj3 = {}; 79 var obj3 = {};
80 obj3['a'] = 100; 80 obj3['a'] = 100;
81 obj3['b'] = obj3; // Cycle. 81 obj3['b'] = obj3; // Cycle.
82 82
83 var obj4 = new SplayTreeMap<String, Dynamic>(); // Different implementation. 83 var obj4 = new SplayTreeMap<String, Dynamic>(); // Different implementation.
84 obj4['a'] = 100; 84 obj4['a'] = 100;
85 obj4['b'] = 's'; 85 obj4['b'] = 's';
86 86
87 test('test_simple', testReadWrite(123, obj1, verifyGraph)); 87 test('test_simple', testReadWrite(123, obj1, verifyGraph));
88 test('test_DAG', testReadWrite(123, obj2, verifyGraph)); 88 test('test_DAG', testReadWrite(123, obj2, verifyGraph));
89 test('test_cycle', testReadWrite(123, obj3, verifyGraph)); 89 test('test_cycle', testReadWrite(123, obj3, verifyGraph));
90 test('test_simple_splay', testReadWrite(123, obj4, verifyGraph)); 90 test('test_simple_splay', testReadWrite(123, obj4, verifyGraph));
91 } 91 }
92 92
93 main() { 93 main() {
94 useHtmlConfiguration(); 94 useHtmlConfiguration();
95 95
96 tests_dynamic(); 96 tests_dynamic();
97 } 97 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698