| Index: third_party/WebKit/LayoutTests/storage/indexeddb/resources/observer-tests.js
|
| diff --git a/third_party/WebKit/LayoutTests/storage/indexeddb/resources/observer-tests.js b/third_party/WebKit/LayoutTests/storage/indexeddb/resources/observer-tests.js
|
| index 8328c2136c8132d7da4e598afd057cb31590176d..3ba535ba6b2b89a5bab0bf0725971720cf29e1b6 100644
|
| --- a/third_party/WebKit/LayoutTests/storage/indexeddb/resources/observer-tests.js
|
| +++ b/third_party/WebKit/LayoutTests/storage/indexeddb/resources/observer-tests.js
|
| @@ -90,6 +90,67 @@ indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
|
| var expectedChanges = {
|
| dbName: db1_name,
|
| records: {
|
| + 'store2': [{type: 'add', key: 'z', value: 'z'}]
|
| + }
|
| + };
|
| +
|
| + var connection = null;
|
| + var observeFunction = function(changes) {
|
| + compareChanges(changes, expectedChanges);
|
| + assert_true(connection != null);
|
| + obs.unobserve(connection);
|
| + t.done();
|
| + };
|
| +
|
| + var obs = new IDBObserver(t.step_func(observeFunction));
|
| +
|
| + openDB(t, db1_name, t.step_func(function(db) {
|
| + connection = db;
|
| + var txn = db.transaction(['store2'], 'readonly');
|
| + obs.observe(db, txn, {operationTypes: ['add'], values: true});
|
| + txn.oncomplete = observers_added_callback;
|
| + txn.onerror = t.unreached_func('transaction should not fail')
|
| + }));
|
| +}, 'IDB Observers: Values');
|
| +
|
| +
|
| +indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callback) {
|
| + var expectedChanges = {
|
| + dbName: db1_name,
|
| + records: {
|
| + 'store2': [{type: 'add', key: 'z'}]
|
| + }
|
| + };
|
| +
|
| + var connection = null;
|
| + var observeFunction = function(changes) {
|
| + compareChanges(changes, expectedChanges);
|
| + assert_true(connection != null);
|
| + obs.unobserve(connection);
|
| + assert_true(changes.transaction != null);
|
| + var store2 = changes.transaction.objectStore('store2');
|
| + var request = store2.get('z');
|
| + request.onsuccess = t.step_func(function() {
|
| + assert_equals(request.result, 'z');
|
| + t.done();
|
| + });
|
| + };
|
| +
|
| + var obs = new IDBObserver(t.step_func(observeFunction));
|
| +
|
| + openDB(t, db1_name, t.step_func(function(db) {
|
| + connection = db;
|
| + var txn = db.transaction(['store2'], 'readonly');
|
| + obs.observe(db, txn, {operationTypes: ['add'], transaction: true});
|
| + txn.oncomplete = observers_added_callback;
|
| + txn.onerror = t.unreached_func('transaction should not fail')
|
| + }));
|
| +}, 'IDB Observers: Transaction');
|
| +
|
| +indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callback) {
|
| + var expectedChanges = {
|
| + dbName: db1_name,
|
| + records: {
|
| 'store2': [{type: 'add', key: 'z'}]
|
| }
|
| };
|
| @@ -227,16 +288,18 @@ indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
|
| var connection = null;
|
| var changeNumber = 0;
|
| var observeFunction = function(changes) {
|
| - assert_true(connection != null);
|
| - if (changeNumber === 0) {
|
| + assert_true(connection != null, "connection is null");
|
| + if (changes.records.has('store1')) {
|
| compareChanges(changes, expectedChanges1);
|
| - } else if(changeNumber === 1) {
|
| + } else if(changes.records.has('store2')) {
|
| compareChanges(changes, expectedChanges2);
|
| + }
|
| + ++changeNumber;
|
| + assert_less_than_equal(changeNumber, 2, "incorrect pendingObserves");
|
| + if (changeNumber == 2) {
|
| obs.unobserve(connection);
|
| t.done();
|
| }
|
| - ++changeNumber;
|
| - assert_less_than_equal(changeNumber, 1, "incorrect pendingObserves");
|
| };
|
|
|
| var obs = new IDBObserver(t.step_func(observeFunction));
|
|
|