| OLD | NEW |
| 1 #library('IndexedDB1Test'); | 1 #library('IndexedDB1Test'); |
| 2 #import('../../pkg/unittest/unittest.dart'); | 2 #import('../../pkg/unittest/unittest.dart'); |
| 3 #import('../../pkg/unittest/html_config.dart'); | 3 #import('../../pkg/unittest/html_config.dart'); |
| 4 #import('dart:html'); | 4 #import('dart:html'); |
| 5 | 5 |
| 6 const String DB_NAME = 'Test'; | 6 const String DB_NAME = 'Test'; |
| 7 const String STORE_NAME = 'TEST'; | 7 const String STORE_NAME = 'TEST'; |
| 8 const int VERSION = 1; | 8 const int VERSION = 1; |
| 9 | 9 |
| 10 testReadWrite(key, value, check, | 10 testReadWrite(key, value, matcher, |
| 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 guardAsync(() { | 17 guardAsync(() { |
| 18 throw const Exception('IndexedDB failure'); | 18 throw const Exception('IndexedDB failure'); |
| 19 }); | 19 }); |
| 20 } | 20 } |
| 21 | 21 |
| 22 createObjectStore(db) { | 22 createObjectStore(db) { |
| 23 var store = db.createObjectStore(storeName); | 23 var store = db.createObjectStore(storeName); |
| 24 expect(store, isNotNull); | 24 expect(store, isNotNull); |
| 25 } | 25 } |
| 26 | 26 |
| 27 step2(e) { | 27 step2(e) { |
| 28 var transaction = db.transaction(storeName, 'readonly'); | 28 var transaction = db.transaction(storeName, 'readonly'); |
| 29 var request = transaction.objectStore(storeName).getObject(key); | 29 var request = transaction.objectStore(storeName).getObject(key); |
| 30 request.on.success.add(expectAsync1((e) { | 30 request.on.success.add(expectAsync1((e) { |
| 31 var object = e.target.result; | 31 var object = e.target.result; |
| 32 db.close(); | 32 db.close(); |
| 33 check(value, object); | 33 expect(object, matcher); |
| 34 })); | 34 })); |
| 35 request.on.error.add(fail); | 35 request.on.error.add(fail); |
| 36 } | 36 } |
| 37 | 37 |
| 38 step1() { | 38 step1() { |
| 39 var transaction = db.transaction([storeName], 'readwrite'); | 39 var transaction = db.transaction([storeName], 'readwrite'); |
| 40 var request = transaction.objectStore(storeName).put(value, key); | 40 var request = transaction.objectStore(storeName).put(value, key); |
| 41 request.on.success.add(expectAsync1(step2)); | 41 request.on.success.add(expectAsync1(step2)); |
| 42 request.on.error.add(fail); | 42 request.on.error.add(fail); |
| 43 } | 43 } |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 }); | 76 }); |
| 77 } | 77 } |
| 78 } | 78 } |
| 79 | 79 |
| 80 // Delete any existing DB. | 80 // Delete any existing DB. |
| 81 var deleteRequest = window.indexedDB.deleteDatabase(dbName); | 81 var deleteRequest = window.indexedDB.deleteDatabase(dbName); |
| 82 deleteRequest.on.success.add(expectAsync1(openDb)); | 82 deleteRequest.on.success.add(expectAsync1(openDb)); |
| 83 deleteRequest.on.error.add(fail); | 83 deleteRequest.on.error.add(fail); |
| 84 }; | 84 }; |
| 85 | 85 |
| 86 testReadWriteTyped(key, value, check, | 86 testReadWriteTyped(key, value, matcher, |
| 87 [dbName = DB_NAME, | 87 [dbName = DB_NAME, |
| 88 storeName = STORE_NAME, | 88 storeName = STORE_NAME, |
| 89 version = VERSION]) => () { | 89 version = VERSION]) => () { |
| 90 IDBDatabase db; | 90 IDBDatabase db; |
| 91 | 91 |
| 92 fail(e) { | 92 fail(e) { |
| 93 guardAsync(() { | 93 guardAsync(() { |
| 94 throw const Exception('IndexedDB failure'); | 94 throw const Exception('IndexedDB failure'); |
| 95 }); | 95 }); |
| 96 } | 96 } |
| 97 | 97 |
| 98 createObjectStore(db) { | 98 createObjectStore(db) { |
| 99 IDBObjectStore store = db.createObjectStore(storeName); | 99 IDBObjectStore store = db.createObjectStore(storeName); |
| 100 expect(store, isNotNull); | 100 expect(store, isNotNull); |
| 101 } | 101 } |
| 102 | 102 |
| 103 step2(e) { | 103 step2(e) { |
| 104 IDBTransaction transaction = db.transaction(storeName, 'readonly'); | 104 IDBTransaction transaction = db.transaction(storeName, 'readonly'); |
| 105 IDBRequest request = transaction.objectStore(storeName).getObject(key); | 105 IDBRequest request = transaction.objectStore(storeName).getObject(key); |
| 106 request.on.success.add(expectAsync1((e) { | 106 request.on.success.add(expectAsync1((e) { |
| 107 var object = e.target.result; | 107 var object = e.target.result; |
| 108 db.close(); | 108 db.close(); |
| 109 check(value, object); | 109 expect(object, matcher); |
| 110 })); | 110 })); |
| 111 request.on.error.add(fail); | 111 request.on.error.add(fail); |
| 112 } | 112 } |
| 113 | 113 |
| 114 step1() { | 114 step1() { |
| 115 IDBTransaction transaction = db.transaction([storeName], 'readwrite'); | 115 IDBTransaction transaction = db.transaction([storeName], 'readwrite'); |
| 116 IDBRequest request = transaction.objectStore(storeName).put(value, key); | 116 IDBRequest request = transaction.objectStore(storeName).put(value, key); |
| 117 request.on.success.add(expectAsync1(step2)); | 117 request.on.success.add(expectAsync1(step2)); |
| 118 request.on.error.add(fail); | 118 request.on.error.add(fail); |
| 119 } | 119 } |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 } | 153 } |
| 154 } | 154 } |
| 155 | 155 |
| 156 // Delete any existing DB. | 156 // Delete any existing DB. |
| 157 IDBRequest deleteRequest = window.indexedDB.deleteDatabase(dbName); | 157 IDBRequest deleteRequest = window.indexedDB.deleteDatabase(dbName); |
| 158 deleteRequest.on.success.add(expectAsync1(openDb)); | 158 deleteRequest.on.success.add(expectAsync1(openDb)); |
| 159 deleteRequest.on.error.add(fail); | 159 deleteRequest.on.error.add(fail); |
| 160 }; | 160 }; |
| 161 | 161 |
| 162 tests_dynamic() { | 162 tests_dynamic() { |
| 163 test('test1', testReadWrite(123, 'Hoot!', Expect.equals)); | 163 test('test1', testReadWrite(123, 'Hoot!', equals('Hoot!'))); |
| 164 test('test2', testReadWrite(123, 12345, Expect.equals)); | 164 test('test2', testReadWrite(123, 12345, equals(12345))); |
| 165 test('test3', testReadWrite(123, [1,2,3], Expect.listEquals)); | 165 test('test3', testReadWrite(123, [1, 2, 3], equals([1, 2, 3]))); |
| 166 test('test4', testReadWrite(123, const [2, 3, 4], Expect.listEquals)); | 166 test('test4', testReadWrite(123, [2, 3, 4], equals([2, 3, 4]))); |
| 167 } | 167 } |
| 168 | 168 |
| 169 tests_typed() { | 169 tests_typed() { |
| 170 test('test1', testReadWriteTyped(123, 'Hoot!', Expect.equals)); | 170 test('test1', testReadWriteTyped(123, 'Hoot!', equals('Hoot!'))); |
| 171 test('test2', testReadWriteTyped(123, 12345, Expect.equals)); | 171 test('test2', testReadWriteTyped(123, 12345, equals(12345))); |
| 172 test('test3', testReadWriteTyped(123, [1,2,3], Expect.listEquals)); | 172 test('test3', testReadWriteTyped(123, [1, 2, 3], equals([1, 2, 3]))); |
| 173 test('test4', | 173 test('test4', testReadWriteTyped(123, [2, 3, 4], equals([2, 3, 4]))); |
| 174 testReadWriteTyped(123, const [2, 3, 4], Expect.listEquals)); | |
| 175 } | 174 } |
| 176 | 175 |
| 177 main() { | 176 main() { |
| 178 useHtmlConfiguration(); | 177 useHtmlConfiguration(); |
| 179 | 178 |
| 180 tests_dynamic(); | 179 tests_dynamic(); |
| 181 tests_typed(); | 180 tests_typed(); |
| 182 } | 181 } |
| OLD | NEW |