| OLD | NEW |
| 1 if (this.importScripts) { | 1 if (this.importScripts) { |
| 2 importScripts('../../../resources/testharness.js'); | 2 importScripts('../../../resources/testharness.js'); |
| 3 importScripts('generic-idb-operations.js'); | 3 importScripts('generic-idb-operations.js'); |
| 4 importScripts('observer-helpers.js'); | 4 importScripts('observer-helpers.js'); |
| 5 importScripts('testharness-helpers.js'); | 5 importScripts('testharness-helpers.js'); |
| 6 } | 6 } |
| 7 | 7 |
| 8 setup({timeout: 20000}); | 8 setup({timeout: 20000}); |
| 9 | 9 |
| 10 var openDB = function(t, dbName, openFunc) { | 10 var openDB = function(t, dbName, openFunc) { |
| 11 var openRequest = indexedDB.open(dbName); | 11 var openRequest = indexedDB.open(dbName); |
| 12 openRequest.onupgradeneeded = t.unreached_func('upgrade should not be needed')
; | 12 openRequest.onupgradeneeded = t.unreached_func('upgrade should not be needed')
; |
| 13 openRequest.onsuccess = t.step_func(function() { | 13 openRequest.onsuccess = t.step_func(function() { |
| 14 openFunc(openRequest.result); | 14 openFunc(openRequest.result); |
| 15 }); | 15 }); |
| 16 openRequest.onerror = t.unreached_func('opening database should not fail'); | 16 openRequest.onerror = t.unreached_func('opening database should not fail'); |
| 17 }; | 17 }; |
| 18 | 18 |
| 19 indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
k) { | 19 indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
k) { |
| 20 var expectedChanges = { | 20 var expectedChanges = { |
| 21 dbName: db1_name, | 21 dbName: db1_name, |
| 22 records: { | 22 records: { |
| 23 'store1': [{type: 'delete', key: {lower: 'a', upper: 'b'}}, | 23 'store1': [{type: 'delete', key: {lower: 'a', upper: 'b'}}, |
| 24 {type: 'put', key: 'a'}], | 24 {type: 'put', key: 'a'}], |
| 25 'store2': [{type: 'add', key: 'z'}] | 25 'store2': [{type: 'add', key: 'z'}] |
| 26 } | 26 } |
| 27 }; | 27 }; |
| 28 var connection = null; | 28 var connection = null; |
| 29 var observedTimes = 0; |
| 29 var observeFunction = function(changes) { | 30 var observeFunction = function(changes) { |
| 30 compareChanges(changes, expectedChanges); | 31 assert_true(connection != null, "Observer called before db opened."); |
| 31 assert_true(connection != null); | 32 observedTimes++; |
| 33 assert_equals(1, observedTimes, "Observer was called after calling unobserve
."); |
| 34 assertChangesEqual(changes, expectedChanges); |
| 32 obs.unobserve(connection); | 35 obs.unobserve(connection); |
| 33 t.done(); | 36 t.done(); |
| 34 }; | 37 }; |
| 35 | 38 |
| 36 var obs = new IDBObserver(t.step_func(observeFunction)); | 39 var obs = new IDBObserver(t.step_func(observeFunction)); |
| 37 | 40 |
| 38 openDB(t, db1_name, t.step_func(function(db) { | 41 openDB(t, db1_name, t.step_func(function(db) { |
| 39 connection = db; | 42 connection = db; |
| 40 var txn = db.transaction(['store1', 'store2'], 'readwrite'); | 43 var txn = db.transaction(['store1', 'store2'], 'readwrite'); |
| 41 | 44 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 61 | 64 |
| 62 indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
k) { | 65 indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
k) { |
| 63 var expectedChanges = { | 66 var expectedChanges = { |
| 64 dbName: db1_name, | 67 dbName: db1_name, |
| 65 records: { | 68 records: { |
| 66 'store2': [{type: 'add', key: 'z'}] | 69 'store2': [{type: 'add', key: 'z'}] |
| 67 } | 70 } |
| 68 }; | 71 }; |
| 69 | 72 |
| 70 var connection = null; | 73 var connection = null; |
| 74 var observedTimes = 0; |
| 71 var observeFunction = function(changes) { | 75 var observeFunction = function(changes) { |
| 72 compareChanges(changes, expectedChanges); | 76 assert_true(connection != null, "Observer called before db opened."); |
| 73 assert_true(connection != null); | 77 observedTimes++; |
| 78 assert_equals(1, observedTimes, "Observer was called after calling unobserve
."); |
| 79 assertChangesEqual(changes, expectedChanges); |
| 74 obs.unobserve(connection); | 80 obs.unobserve(connection); |
| 75 t.done(); | 81 t.done(); |
| 76 }; | 82 }; |
| 77 | 83 |
| 78 var obs = new IDBObserver(t.step_func(observeFunction)); | 84 var obs = new IDBObserver(t.step_func(observeFunction)); |
| 79 | 85 |
| 80 openDB(t, db1_name, t.step_func(function(db) { | 86 openDB(t, db1_name, t.step_func(function(db) { |
| 81 connection = db; | 87 connection = db; |
| 82 var txn = db.transaction(['store2'], 'readonly'); | 88 var txn = db.transaction(['store2'], 'readonly'); |
| 83 obs.observe(db, txn, {operationTypes: ['add']}); | 89 obs.observe(db, txn, {operationTypes: ['add']}); |
| 84 txn.oncomplete = observers_added_callback; | 90 txn.oncomplete = observers_added_callback; |
| 85 txn.onerror = t.unreached_func('transaction should not fail') | 91 txn.onerror = t.unreached_func('transaction should not fail') |
| 86 })); | 92 })); |
| 87 }, 'IDB Observers: Operation filtering'); | 93 }, 'IDB Observers: Operation filtering'); |
| 88 | 94 |
| 89 indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
k) { | 95 indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
k) { |
| 90 var expectedChanges = { | 96 var expectedChanges = { |
| 91 dbName: db1_name, | 97 dbName: db1_name, |
| 92 records: { | 98 records: { |
| 99 'store2': [{type: 'add', key: 'z', value: 'z'}] |
| 100 } |
| 101 }; |
| 102 |
| 103 var connection = null; |
| 104 var observedTimes = 0; |
| 105 var observeFunction = function(changes) { |
| 106 assert_true(connection != null, "Observer called before db opened."); |
| 107 observedTimes++; |
| 108 assert_equals(1, observedTimes, "Observer was called after calling unobserve
."); |
| 109 assertChangesEqual(changes, expectedChanges); |
| 110 obs.unobserve(connection); |
| 111 t.done(); |
| 112 }; |
| 113 |
| 114 var obs = new IDBObserver(t.step_func(observeFunction)); |
| 115 |
| 116 openDB(t, db1_name, t.step_func(function(db) { |
| 117 connection = db; |
| 118 var txn = db.transaction(['store2'], 'readonly'); |
| 119 obs.observe(db, txn, {operationTypes: ['add'], values: true}); |
| 120 txn.oncomplete = observers_added_callback; |
| 121 txn.onerror = t.unreached_func('transaction should not fail') |
| 122 })); |
| 123 }, 'IDB Observers: Values'); |
| 124 |
| 125 |
| 126 indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
k) { |
| 127 var expectedChanges = { |
| 128 dbName: db1_name, |
| 129 records: { |
| 130 'store2': [{type: 'add', key: 'z'}], |
| 131 } |
| 132 }; |
| 133 |
| 134 var connection = null; |
| 135 var observedTimes = 0; |
| 136 var observeFunction = function(changes) { |
| 137 assert_true(connection != null, "Observer called before db opened."); |
| 138 observedTimes++; |
| 139 assert_equals(1, observedTimes, "Observer was called after calling unobserve
."); |
| 140 assertChangesEqual(changes, expectedChanges); |
| 141 obs.unobserve(connection); |
| 142 assert_true(changes.transaction != null); |
| 143 var store2 = changes.transaction.objectStore('store2'); |
| 144 var request = store2.get('z'); |
| 145 request.onsuccess = t.step_func(function() { |
| 146 assert_equals(request.result, 'z'); |
| 147 t.done(); |
| 148 }); |
| 149 }; |
| 150 |
| 151 var obs = new IDBObserver(t.step_func(observeFunction)); |
| 152 |
| 153 openDB(t, db1_name, t.step_func(function(db) { |
| 154 connection = db; |
| 155 var txn = db.transaction(['store2'], 'readonly'); |
| 156 obs.observe(db, txn, {operationTypes: ['add'], transaction: true}); |
| 157 txn.oncomplete = observers_added_callback; |
| 158 txn.onerror = t.unreached_func('transaction should not fail') |
| 159 })); |
| 160 }, 'IDB Observers: Transaction'); |
| 161 |
| 162 indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
k) { |
| 163 var expectedChanges = { |
| 164 dbName: db1_name, |
| 165 records: { |
| 93 'store2': [{type: 'add', key: 'z'}] | 166 'store2': [{type: 'add', key: 'z'}] |
| 94 } | 167 } |
| 95 }; | 168 }; |
| 96 | 169 |
| 97 var connection = null; | 170 var connection = null; |
| 171 var observedTimes = 0; |
| 98 var observeFunction = function(changes) { | 172 var observeFunction = function(changes) { |
| 99 compareChanges(changes, expectedChanges); | 173 assert_true(connection != null, "Observer called before db opened."); |
| 100 assert_true(connection != null); | 174 observedTimes++; |
| 175 assert_equals(1, observedTimes, "Observer was called after calling unobserve
."); |
| 176 assertChangesEqual(changes, expectedChanges); |
| 101 obs.unobserve(connection); | 177 obs.unobserve(connection); |
| 102 t.done(); | 178 t.done(); |
| 103 }; | 179 }; |
| 104 | 180 |
| 105 var obs = new IDBObserver(t.step_func(observeFunction)); | 181 var obs = new IDBObserver(t.step_func(observeFunction)); |
| 106 | 182 |
| 107 openDB(t, db1_name, t.step_func(function(db) { | 183 openDB(t, db1_name, t.step_func(function(db) { |
| 108 connection = db; | 184 connection = db; |
| 109 var txn = db.transaction(['store2'], 'readonly'); | 185 var txn = db.transaction(['store2'], 'readonly'); |
| 110 obs.observe(db, txn, {operationTypes: ['clear', 'put', 'add', 'delete']}); | 186 obs.observe(db, txn, {operationTypes: ['clear', 'put', 'add', 'delete']}); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 132 }; | 208 }; |
| 133 | 209 |
| 134 var observers_added_barrier = create_barrier(observers_added_callback); | 210 var observers_added_barrier = create_barrier(observers_added_callback); |
| 135 | 211 |
| 136 var connection1 = null; | 212 var connection1 = null; |
| 137 var connection2 = null; | 213 var connection2 = null; |
| 138 var pendingObserves = 2; | 214 var pendingObserves = 2; |
| 139 var observeFunction = function(changes) { | 215 var observeFunction = function(changes) { |
| 140 pendingObserves = pendingObserves - 1; | 216 pendingObserves = pendingObserves - 1; |
| 141 if (changes.database.name === db1_name) { | 217 if (changes.database.name === db1_name) { |
| 142 compareChanges(changes, expectedChanges1); | 218 assertChangesEqual(changes, expectedChanges1); |
| 143 assert_true(connection1 != null); | 219 assert_true(connection1 != null); |
| 144 obs.unobserve(connection1); | 220 obs.unobserve(connection1); |
| 145 } else if (changes.database.name === db2_name) { | 221 } else if (changes.database.name === db2_name) { |
| 146 compareChanges(changes, expectedChanges2); | 222 assertChangesEqual(changes, expectedChanges2); |
| 147 assert_true(connection2 != null); | 223 assert_true(connection2 != null); |
| 148 obs.unobserve(connection2); | 224 obs.unobserve(connection2); |
| 149 } | 225 } |
| 150 if (pendingObserves === 0) { | 226 if (pendingObserves === 0) { |
| 151 t.done(); | 227 t.done(); |
| 152 } else if (pendingObserves < 0) { | 228 } else if (pendingObserves < 0) { |
| 153 assert_unreached("incorrect pendingObserves"); | 229 assert_unreached("incorrect pendingObserves"); |
| 154 } | 230 } |
| 155 }; | 231 }; |
| 156 | 232 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 180 records: { | 256 records: { |
| 181 'store1': [{type: 'delete', key: {lower: 'a', upper: 'b'}}, | 257 'store1': [{type: 'delete', key: {lower: 'a', upper: 'b'}}, |
| 182 {type: 'put', key: 'a'}], | 258 {type: 'put', key: 'a'}], |
| 183 'store2': [{type: 'add', key: 'z'}] | 259 'store2': [{type: 'add', key: 'z'}] |
| 184 } | 260 } |
| 185 }; | 261 }; |
| 186 | 262 |
| 187 var connection = null; | 263 var connection = null; |
| 188 var pendingObserves = 2; | 264 var pendingObserves = 2; |
| 189 var observeFunction = function(changes) { | 265 var observeFunction = function(changes) { |
| 190 compareChanges(changes, expectedChanges); | 266 assertChangesEqual(changes, expectedChanges); |
| 191 pendingObserves = pendingObserves - 1; | 267 pendingObserves = pendingObserves - 1; |
| 192 if (pendingObserves === 0) { | 268 if (pendingObserves === 0) { |
| 193 assert_true(connection != null); | 269 assert_true(connection != null, "Observer called before db opened."); |
| 194 obs.unobserve(connection); | 270 obs.unobserve(connection); |
| 195 t.done(); | 271 t.done(); |
| 196 } else if (pendingObserves < 0) { | 272 } else if (pendingObserves < 0) { |
| 197 assert_unreached("incorrect pendingObserves"); | 273 assert_unreached("incorrect pendingObserves"); |
| 198 } | 274 } |
| 199 }; | 275 }; |
| 200 | 276 |
| 201 var obs = new IDBObserver(t.step_func(observeFunction)); | 277 var obs = new IDBObserver(t.step_func(observeFunction)); |
| 202 | 278 |
| 203 openDB(t, db1_name, t.step_func(function(db) { | 279 openDB(t, db1_name, t.step_func(function(db) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 220 var expectedChanges2 = { | 296 var expectedChanges2 = { |
| 221 dbName: db1_name, | 297 dbName: db1_name, |
| 222 records: { | 298 records: { |
| 223 'store2': [{type: 'add', key: 'z'}] | 299 'store2': [{type: 'add', key: 'z'}] |
| 224 } | 300 } |
| 225 }; | 301 }; |
| 226 | 302 |
| 227 var connection = null; | 303 var connection = null; |
| 228 var changeNumber = 0; | 304 var changeNumber = 0; |
| 229 var observeFunction = function(changes) { | 305 var observeFunction = function(changes) { |
| 230 assert_true(connection != null); | 306 assert_true(connection != null, "Observer called before db opened."); |
| 231 if (changeNumber === 0) { | 307 if (changes.records.has('store1')) { |
| 232 compareChanges(changes, expectedChanges1); | 308 assertChangesEqual(changes, expectedChanges1); |
| 233 } else if(changeNumber === 1) { | 309 } else if(changes.records.has('store2')) { |
| 234 compareChanges(changes, expectedChanges2); | 310 assertChangesEqual(changes, expectedChanges2); |
| 311 } |
| 312 ++changeNumber; |
| 313 assert_less_than_equal(changeNumber, 2, "incorrect pendingObserves"); |
| 314 if (changeNumber == 2) { |
| 235 obs.unobserve(connection); | 315 obs.unobserve(connection); |
| 236 t.done(); | 316 t.done(); |
| 237 } | 317 } |
| 238 ++changeNumber; | |
| 239 assert_less_than_equal(changeNumber, 1, "incorrect pendingObserves"); | |
| 240 }; | 318 }; |
| 241 | 319 |
| 242 var obs = new IDBObserver(t.step_func(observeFunction)); | 320 var obs = new IDBObserver(t.step_func(observeFunction)); |
| 243 | 321 |
| 244 openDB(t, db1_name, t.step_func(function(db) { | 322 openDB(t, db1_name, t.step_func(function(db) { |
| 245 connection = db; | 323 connection = db; |
| 246 var txn = db.transaction(['store1', 'store2'], 'readonly'); | 324 var txn = db.transaction(['store1', 'store2'], 'readonly'); |
| 247 obs.observe(db, txn, {operationTypes: ['put']}); | 325 obs.observe(db, txn, {operationTypes: ['put']}); |
| 248 obs.observe(db, txn, {operationTypes: ['add']}); | 326 obs.observe(db, txn, {operationTypes: ['add']}); |
| 249 txn.oncomplete = observers_added_callback; | 327 txn.oncomplete = observers_added_callback; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 var connection3 = null; | 365 var connection3 = null; |
| 288 var observers_added_barrier = create_barrier(observers_added_callback); | 366 var observers_added_barrier = create_barrier(observers_added_callback); |
| 289 | 367 |
| 290 var pendingObserves = 4; | 368 var pendingObserves = 4; |
| 291 var observeFunction = function(changes) { | 369 var observeFunction = function(changes) { |
| 292 pendingObserves = pendingObserves - 1; | 370 pendingObserves = pendingObserves - 1; |
| 293 var firstRound = pendingObserves != 0; | 371 var firstRound = pendingObserves != 0; |
| 294 | 372 |
| 295 if (changes.database === connection1) { | 373 if (changes.database === connection1) { |
| 296 assert_true(firstRound, "connection 1 should have been unobserved"); | 374 assert_true(firstRound, "connection 1 should have been unobserved"); |
| 297 compareChanges(changes, partOneChanges1); | 375 assertChangesEqual(changes, partOneChanges1); |
| 298 obs.unobserve(connection1); | 376 obs.unobserve(connection1); |
| 299 } else if (changes.database === connection2) { | 377 } else if (changes.database === connection2) { |
| 300 if (firstRound) | 378 if (firstRound) |
| 301 compareChanges(changes, partOneChanges2); | 379 assertChangesEqual(changes, partOneChanges2); |
| 302 else | 380 else |
| 303 compareChanges(changes, partTwoChanges2); | 381 assertChangesEqual(changes, partTwoChanges2); |
| 304 } else if (changes.database === connection3) { | 382 } else if (changes.database === connection3) { |
| 305 assert_true(firstRound, "connection 3 should have been unobserved "); | 383 assert_true(firstRound, "connection 3 should have been unobserved "); |
| 306 compareChanges(changes, partOneChanges3); | 384 assertChangesEqual(changes, partOneChanges3); |
| 307 obs.unobserve(connection3); | 385 obs.unobserve(connection3); |
| 308 } else { | 386 } else { |
| 309 assert_unreached('Unknown connection supplied with changes.'); | 387 assert_unreached('Unknown connection supplied with changes.'); |
| 310 } | 388 } |
| 311 if (pendingObserves === 0) { | 389 if (pendingObserves === 0) { |
| 312 t.done(); | 390 t.done(); |
| 313 } else if (pendingObserves < 0) { | 391 } else if (pendingObserves < 0) { |
| 314 assert_unreached("incorrect pendingObserves"); | 392 assert_unreached("incorrect pendingObserves"); |
| 315 } | 393 } |
| 316 }; | 394 }; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 340 obs.observe(db, txn, {operationTypes: ['clear', 'put', 'add', 'delete']}); | 418 obs.observe(db, txn, {operationTypes: ['clear', 'put', 'add', 'delete']}); |
| 341 txn.oncomplete = cb3; | 419 txn.oncomplete = cb3; |
| 342 txn.onerror = t.unreached_func('transaction should not fail') | 420 txn.onerror = t.unreached_func('transaction should not fail') |
| 343 })); | 421 })); |
| 344 }, 'IDB Observers: Three connections, unobserve two'); | 422 }, 'IDB Observers: Three connections, unobserve two'); |
| 345 | 423 |
| 346 indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
k) { | 424 indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
k) { |
| 347 var connection1 = null; | 425 var connection1 = null; |
| 348 var connection2 = null; | 426 var connection2 = null; |
| 349 | 427 |
| 428 var observedTimes = 0; |
| 350 var observeFunction = function(changes) { | 429 var observeFunction = function(changes) { |
| 430 assert_true(connection2 != null, "Observer called before db opened."); |
| 431 observedTimes++; |
| 432 assert_equals(1, observedTimes, "Observer was called after calling unobserve
."); |
| 351 assert_equals(changes.database, connection2); | 433 assert_equals(changes.database, connection2); |
| 352 obs.unobserve(connection2); | 434 obs.unobserve(connection2); |
| 353 t.done(); | 435 t.done(); |
| 354 }; | 436 }; |
| 355 | 437 |
| 356 var obs = new IDBObserver(t.step_func(observeFunction)); | 438 var obs = new IDBObserver(t.step_func(observeFunction)); |
| 357 | 439 |
| 358 openDB(t, db1_name, t.step_func(function(db) { | 440 openDB(t, db1_name, t.step_func(function(db) { |
| 359 connection1 = db; | 441 connection1 = db; |
| 360 var txn = db.transaction(['store1'], 'readonly'); | 442 var txn = db.transaction(['store1'], 'readonly'); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 var connection2 = null; | 508 var connection2 = null; |
| 427 var observers_added_barrier = create_barrier(observers_added_callback); | 509 var observers_added_barrier = create_barrier(observers_added_callback); |
| 428 | 510 |
| 429 var connection1Observes = 0; | 511 var connection1Observes = 0; |
| 430 var connection2Observes = 0; | 512 var connection2Observes = 0; |
| 431 var observeFunction = function(changes) { | 513 var observeFunction = function(changes) { |
| 432 if (changes.database === connection1) { | 514 if (changes.database === connection1) { |
| 433 connection1Observes = connection1Observes + 1; | 515 connection1Observes = connection1Observes + 1; |
| 434 assert_true(connection1Observes <= 2); | 516 assert_true(connection1Observes <= 2); |
| 435 if (changes.records.has('store1')) { | 517 if (changes.records.has('store1')) { |
| 436 compareChanges(changes, expectedChanges1); | 518 assertChangesEqual(changes, expectedChanges1); |
| 437 } else if (changes.records.has('store2')) { | 519 } else if (changes.records.has('store2')) { |
| 438 compareChanges(changes, expectedChanges2); | 520 assertChangesEqual(changes, expectedChanges2); |
| 439 } else { | 521 } else { |
| 440 assert_unreached("unknown changes"); | 522 assert_unreached("unknown changes"); |
| 441 } | 523 } |
| 442 if (connection1Observes === 2) { | 524 if (connection1Observes === 2) { |
| 443 obs.unobserve(connection1); | 525 obs.unobserve(connection1); |
| 444 } | 526 } |
| 445 } else if (changes.database === connection2) { | 527 } else if (changes.database === connection2) { |
| 446 connection2Observes = connection2Observes + 1; | 528 connection2Observes = connection2Observes + 1; |
| 447 if (connection2Observes > 1) { | 529 if (connection2Observes > 1) { |
| 448 t.done(); | 530 t.done(); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 var connection2 = null; | 580 var connection2 = null; |
| 499 var observers_added_barrier = create_barrier(observers_added_callback); | 581 var observers_added_barrier = create_barrier(observers_added_callback); |
| 500 | 582 |
| 501 var connection1Observes = 0; | 583 var connection1Observes = 0; |
| 502 var connection2Observes = 0; | 584 var connection2Observes = 0; |
| 503 var observeFunction = function(changes) { | 585 var observeFunction = function(changes) { |
| 504 if (changes.database === connection1) { | 586 if (changes.database === connection1) { |
| 505 connection1Observes = connection1Observes + 1; | 587 connection1Observes = connection1Observes + 1; |
| 506 assert_true(connection1Observes <= 2); | 588 assert_true(connection1Observes <= 2); |
| 507 if (changes.records.has('store1')) { | 589 if (changes.records.has('store1')) { |
| 508 compareChanges(changes, expectedChanges1); | 590 assertChangesEqual(changes, expectedChanges1); |
| 509 } else if (changes.records.has('store2')) { | 591 } else if (changes.records.has('store2')) { |
| 510 compareChanges(changes, expectedChanges2); | 592 assertChangesEqual(changes, expectedChanges2); |
| 511 } else { | 593 } else { |
| 512 assert_unreached("unknown changes"); | 594 assert_unreached("unknown changes"); |
| 513 } | 595 } |
| 514 if (connection1Observes === 2) { | 596 if (connection1Observes === 2) { |
| 515 connection1.close(); | 597 connection1.close(); |
| 516 } | 598 } |
| 517 } else if (changes.database === connection2) { | 599 } else if (changes.database === connection2) { |
| 518 connection2Observes = connection2Observes + 1; | 600 connection2Observes = connection2Observes + 1; |
| 519 if (connection2Observes > 1) { | 601 if (connection2Observes > 1) { |
| 520 t.done(); | 602 t.done(); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 545 openDB(t, db2_name, t.step_func(function(db) { | 627 openDB(t, db2_name, t.step_func(function(db) { |
| 546 connection2 = db; | 628 connection2 = db; |
| 547 var txn = db.transaction(['store3'], 'readonly'); | 629 var txn = db.transaction(['store3'], 'readonly'); |
| 548 obs.observe(db, txn, {operationTypes: ['clear', 'put', 'add', 'delete']}); | 630 obs.observe(db, txn, {operationTypes: ['clear', 'put', 'add', 'delete']}); |
| 549 txn.oncomplete = cb3; | 631 txn.oncomplete = cb3; |
| 550 txn.onerror = t.unreached_func('transaction should not fail'); | 632 txn.onerror = t.unreached_func('transaction should not fail'); |
| 551 })); | 633 })); |
| 552 }, 'IDB Observers: Close connection removes observers'); | 634 }, 'IDB Observers: Close connection removes observers'); |
| 553 | 635 |
| 554 done(); | 636 done(); |
| OLD | NEW |