Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Unified Diff: third_party/WebKit/LayoutTests/storage/indexeddb/resources/observer-tests.js

Issue 2601983002: [IndexedDB] Adding transaction and value support to observers (Closed)
Patch Set: added comments and bug link Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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");
}

Powered by Google App Engine
This is Rietveld 408576698