| OLD | NEW |
| 1 library IndexedDB1Test; | 1 library IndexedDB1Test; |
| 2 import '../../pkg/unittest/lib/unittest.dart'; | 2 import '../../pkg/unittest/lib/unittest.dart'; |
| 3 import '../../pkg/unittest/lib/html_config.dart'; | 3 import '../../pkg/unittest/lib/html_config.dart'; |
| 4 import 'dart:html' as html; | 4 import 'dart:html' as html; |
| 5 import 'dart:indexed_db' as idb; | 5 import 'dart:indexed_db' as idb; |
| 6 import 'dart:collection'; | 6 import 'dart:collection'; |
| 7 import 'utils.dart'; | 7 import 'utils.dart'; |
| 8 | 8 |
| 9 // Write and re-read Maps: simple Maps; Maps with DAGs; Maps with cycles. | 9 // Write and re-read Maps: simple Maps; Maps with DAGs; Maps with cycles. |
| 10 | 10 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 } | 25 } |
| 26 | 26 |
| 27 createObjectStore(db) { | 27 createObjectStore(db) { |
| 28 var store = db.createObjectStore(storeName); | 28 var store = db.createObjectStore(storeName); |
| 29 expect(store, isNotNull); | 29 expect(store, isNotNull); |
| 30 } | 30 } |
| 31 | 31 |
| 32 step2(e) { | 32 step2(e) { |
| 33 var transaction = db.transaction(storeName, 'readonly'); | 33 var transaction = db.transaction(storeName, 'readonly'); |
| 34 var request = transaction.objectStore(storeName).getObject(key); | 34 var request = transaction.objectStore(storeName).getObject(key); |
| 35 request.on.success.add(expectAsync1((e) { | 35 request.onSuccess.listen(expectAsync1((e) { |
| 36 var object = e.target.result; | 36 var object = e.target.result; |
| 37 db.close(); | 37 db.close(); |
| 38 check(value, object); | 38 check(value, object); |
| 39 })); | 39 })); |
| 40 request.on.error.add(fail); | 40 request.onError.listen(fail); |
| 41 } | 41 } |
| 42 | 42 |
| 43 step1() { | 43 step1() { |
| 44 var transaction = db.transaction([storeName], 'readwrite'); | 44 var transaction = db.transaction([storeName], 'readwrite'); |
| 45 var request = transaction.objectStore(storeName).put(value, key); | 45 var request = transaction.objectStore(storeName).put(value, key); |
| 46 request.on.success.add(expectAsync1(step2)); | 46 request.onSuccess.listen(expectAsync1(step2)); |
| 47 request.on.error.add(fail); | 47 request.onError.listen(fail); |
| 48 } | 48 } |
| 49 | 49 |
| 50 initDb(e) { | 50 initDb(e) { |
| 51 db = e.target.result; | 51 db = e.target.result; |
| 52 if (version != db.version) { | 52 if (version != db.version) { |
| 53 // Legacy 'setVersion' upgrade protocol. | 53 // Legacy 'setVersion' upgrade protocol. |
| 54 var request = db.setVersion('$version'); | 54 var request = db.setVersion('$version'); |
| 55 request.on.success.add( | 55 request.onSuccess.listen( |
| 56 expectAsync1((e) { | 56 expectAsync1((e) { |
| 57 createObjectStore(db); | 57 createObjectStore(db); |
| 58 var transaction = e.target.result; | 58 var transaction = e.target.result; |
| 59 transaction.on.complete.add(expectAsync1((e) => step1())); | 59 transaction.onComplete.listen(expectAsync1((e) => step1())); |
| 60 transaction.on.error.add(fail); | 60 transaction.onError.listen(fail); |
| 61 }) | 61 }) |
| 62 ); | 62 ); |
| 63 request.on.error.add(fail); | 63 request.onError.listen(fail); |
| 64 } else { | 64 } else { |
| 65 step1(); | 65 step1(); |
| 66 } | 66 } |
| 67 } | 67 } |
| 68 | 68 |
| 69 openDb(e) { | 69 openDb(e) { |
| 70 var request = html.window.indexedDB.open(dbName, version); | 70 var request = html.window.indexedDB.open(dbName, version); |
| 71 expect(request, isNotNull); | 71 expect(request, isNotNull); |
| 72 request.on.success.add(expectAsync1(initDb)); | 72 request.onSuccess.listen(expectAsync1(initDb)); |
| 73 request.on.error.add(fail); | 73 request.onError.listen(fail); |
| 74 if (request is idb.OpenDBRequest) { | 74 if (request is idb.OpenDBRequest) { |
| 75 // New upgrade protocol. Old API has no 'upgradeNeeded' and uses | 75 // New upgrade protocol. Old API has no 'upgradeNeeded' and uses |
| 76 // setVersion instead. | 76 // setVersion instead. |
| 77 request.on.upgradeNeeded.add((e) { | 77 request.onUpgradeNeeded.listen((e) { |
| 78 guardAsync(() { | 78 guardAsync(() { |
| 79 createObjectStore(e.target.result); | 79 createObjectStore(e.target.result); |
| 80 }); | 80 }); |
| 81 }); | 81 }); |
| 82 } | 82 } |
| 83 } | 83 } |
| 84 | 84 |
| 85 // Delete any existing DB. | 85 // Delete any existing DB. |
| 86 var deleteRequest = html.window.indexedDB.deleteDatabase(dbName); | 86 var deleteRequest = html.window.indexedDB.deleteDatabase(dbName); |
| 87 deleteRequest.on.success.add(expectAsync1(openDb)); | 87 deleteRequest.onSuccess.listen(expectAsync1(openDb)); |
| 88 deleteRequest.on.error.add(fail); | 88 deleteRequest.onError.listen(fail); |
| 89 }; | 89 }; |
| 90 | 90 |
| 91 | 91 |
| 92 main() { | 92 main() { |
| 93 useHtmlConfiguration(); | 93 useHtmlConfiguration(); |
| 94 | 94 |
| 95 var obj1 = {'a': 100, 'b': 's'}; | 95 var obj1 = {'a': 100, 'b': 's'}; |
| 96 var obj2 = {'x': obj1, 'y': obj1}; // DAG. | 96 var obj2 = {'x': obj1, 'y': obj1}; // DAG. |
| 97 | 97 |
| 98 var obj3 = {}; | 98 var obj3 = {}; |
| (...skipping 30 matching lines...) Expand all Loading... |
| 129 go('test_DAG', obj2); | 129 go('test_DAG', obj2); |
| 130 go('test_cycle', obj3); | 130 go('test_cycle', obj3); |
| 131 go('test_simple_splay', obj4); | 131 go('test_simple_splay', obj4); |
| 132 go('const_array_1', const [const [1], const [2]]); | 132 go('const_array_1', const [const [1], const [2]]); |
| 133 go('const_array_dag', const [const [1], const [1]]); | 133 go('const_array_dag', const [const [1], const [1]]); |
| 134 go('array_deferred_copy', [1,2,3, obj3, obj3, 6]); | 134 go('array_deferred_copy', [1,2,3, obj3, obj3, 6]); |
| 135 go('array_deferred_copy_2', [1,2,3, [4, 5, obj3], [obj3, 6]]); | 135 go('array_deferred_copy_2', [1,2,3, [4, 5, obj3], [obj3, 6]]); |
| 136 go('cyclic_list', cyclic_list); | 136 go('cyclic_list', cyclic_list); |
| 137 } | 137 } |
| 138 } | 138 } |
| OLD | NEW |