| 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..d1dbe668901d8f21cd65cceb51fd6afbc6d127c1 100644
|
| --- a/third_party/WebKit/LayoutTests/storage/indexeddb/resources/observer-tests.js
|
| +++ b/third_party/WebKit/LayoutTests/storage/indexeddb/resources/observer-tests.js
|
| @@ -26,9 +26,12 @@ indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
|
| }
|
| };
|
| var connection = null;
|
| + var observedTimes = 0;
|
| var observeFunction = function(changes) {
|
| - compareChanges(changes, expectedChanges);
|
| - assert_true(connection != null);
|
| + assert_true(connection != null, "Observer called before db opened.");
|
| + observedTimes++;
|
| + assert_equals(1, observedTimes, "Observer was called after calling unobserve.");
|
| + assertChangesEqual(changes, expectedChanges);
|
| obs.unobserve(connection);
|
| t.done();
|
| };
|
| @@ -68,9 +71,12 @@ indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
|
| };
|
|
|
| var connection = null;
|
| + var observedTimes = 0;
|
| var observeFunction = function(changes) {
|
| - compareChanges(changes, expectedChanges);
|
| - assert_true(connection != null);
|
| + assert_true(connection != null, "Observer called before db opened.");
|
| + observedTimes++;
|
| + assert_equals(1, observedTimes, "Observer was called after calling unobserve.");
|
| + assertChangesEqual(changes, expectedChanges);
|
| obs.unobserve(connection);
|
| t.done();
|
| };
|
| @@ -90,14 +96,84 @@ 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 observedTimes = 0;
|
| + var observeFunction = function(changes) {
|
| + assert_true(connection != null, "Observer called before db opened.");
|
| + observedTimes++;
|
| + assert_equals(1, observedTimes, "Observer was called after calling unobserve.");
|
| + assertChangesEqual(changes, expectedChanges);
|
| + 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 observedTimes = 0;
|
| + var observeFunction = function(changes) {
|
| + assert_true(connection != null, "Observer called before db opened.");
|
| + observedTimes++;
|
| + assert_equals(1, observedTimes, "Observer was called after calling unobserve.");
|
| + assertChangesEqual(changes, expectedChanges);
|
| + 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'}]
|
| }
|
| };
|
|
|
| var connection = null;
|
| + var observedTimes = 0;
|
| var observeFunction = function(changes) {
|
| - compareChanges(changes, expectedChanges);
|
| - assert_true(connection != null);
|
| + assert_true(connection != null, "Observer called before db opened.");
|
| + observedTimes++;
|
| + assert_equals(1, observedTimes, "Observer was called after calling unobserve.");
|
| + assertChangesEqual(changes, expectedChanges);
|
| obs.unobserve(connection);
|
| t.done();
|
| };
|
| @@ -139,11 +215,11 @@ indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
|
| var observeFunction = function(changes) {
|
| pendingObserves = pendingObserves - 1;
|
| if (changes.database.name === db1_name) {
|
| - compareChanges(changes, expectedChanges1);
|
| + assertChangesEqual(changes, expectedChanges1);
|
| assert_true(connection1 != null);
|
| obs.unobserve(connection1);
|
| } else if (changes.database.name === db2_name) {
|
| - compareChanges(changes, expectedChanges2);
|
| + assertChangesEqual(changes, expectedChanges2);
|
| assert_true(connection2 != null);
|
| obs.unobserve(connection2);
|
| }
|
| @@ -187,10 +263,10 @@ indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
|
| var connection = null;
|
| var pendingObserves = 2;
|
| var observeFunction = function(changes) {
|
| - compareChanges(changes, expectedChanges);
|
| + assertChangesEqual(changes, expectedChanges);
|
| pendingObserves = pendingObserves - 1;
|
| if (pendingObserves === 0) {
|
| - assert_true(connection != null);
|
| + assert_true(connection != null, "Observer called before db opened.");
|
| obs.unobserve(connection);
|
| t.done();
|
| } else if (pendingObserves < 0) {
|
| @@ -227,16 +303,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) {
|
| - compareChanges(changes, expectedChanges1);
|
| - } else if(changeNumber === 1) {
|
| - compareChanges(changes, expectedChanges2);
|
| + assert_true(connection != null, "Observer called before db opened.");
|
| + if (changes.records.has('store1')) {
|
| + assertChangesEqual(changes, expectedChanges1);
|
| + } else if(changes.records.has('store2')) {
|
| + assertChangesEqual(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));
|
| @@ -294,16 +372,16 @@ indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
|
|
|
| if (changes.database === connection1) {
|
| assert_true(firstRound, "connection 1 should have been unobserved");
|
| - compareChanges(changes, partOneChanges1);
|
| + assertChangesEqual(changes, partOneChanges1);
|
| obs.unobserve(connection1);
|
| } else if (changes.database === connection2) {
|
| if (firstRound)
|
| - compareChanges(changes, partOneChanges2);
|
| + assertChangesEqual(changes, partOneChanges2);
|
| else
|
| - compareChanges(changes, partTwoChanges2);
|
| + assertChangesEqual(changes, partTwoChanges2);
|
| } else if (changes.database === connection3) {
|
| assert_true(firstRound, "connection 3 should have been unobserved ");
|
| - compareChanges(changes, partOneChanges3);
|
| + assertChangesEqual(changes, partOneChanges3);
|
| obs.unobserve(connection3);
|
| } else {
|
| assert_unreached('Unknown connection supplied with changes.');
|
| @@ -347,7 +425,11 @@ indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
|
| var connection1 = null;
|
| var connection2 = null;
|
|
|
| + var observedTimes = 0;
|
| var observeFunction = function(changes) {
|
| + assert_true(connection2 != null, "Observer called before db opened.");
|
| + observedTimes++;
|
| + assert_equals(1, observedTimes, "Observer was called after calling unobserve.");
|
| assert_equals(changes.database, connection2);
|
| obs.unobserve(connection2);
|
| t.done();
|
| @@ -433,9 +515,9 @@ indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
|
| connection1Observes = connection1Observes + 1;
|
| assert_true(connection1Observes <= 2);
|
| if (changes.records.has('store1')) {
|
| - compareChanges(changes, expectedChanges1);
|
| + assertChangesEqual(changes, expectedChanges1);
|
| } else if (changes.records.has('store2')) {
|
| - compareChanges(changes, expectedChanges2);
|
| + assertChangesEqual(changes, expectedChanges2);
|
| } else {
|
| assert_unreached("unknown changes");
|
| }
|
| @@ -505,9 +587,9 @@ indexeddb_observers_test(function(t, db1_name, db2_name, observers_added_callbac
|
| connection1Observes = connection1Observes + 1;
|
| assert_true(connection1Observes <= 2);
|
| if (changes.records.has('store1')) {
|
| - compareChanges(changes, expectedChanges1);
|
| + assertChangesEqual(changes, expectedChanges1);
|
| } else if (changes.records.has('store2')) {
|
| - compareChanges(changes, expectedChanges2);
|
| + assertChangesEqual(changes, expectedChanges2);
|
| } else {
|
| assert_unreached("unknown changes");
|
| }
|
|
|