Index: chrome/test/data/webui/settings/passwords_and_autofill_fake_data.js |
diff --git a/chrome/test/data/webui/settings/passwords_and_autofill_fake_data.js b/chrome/test/data/webui/settings/passwords_and_autofill_fake_data.js |
index 18c5d33ed033b493453ababc9f4b18153b0c18ce..88395291057383da4f4d92f73ad9b08922a0043e 100644 |
--- a/chrome/test/data/webui/settings/passwords_and_autofill_fake_data.js |
+++ b/chrome/test/data/webui/settings/passwords_and_autofill_fake_data.js |
@@ -6,7 +6,9 @@ |
* Used to create fake data for both passwords and autofill. |
* These sections are related, so it made sense to share this. |
*/ |
+ |
function FakeDataMaker() {} |
+ |
/** |
* Creates a single item for the list of passwords. |
* @param {string|undefined} url |
@@ -127,3 +129,205 @@ FakeDataMaker.patternMaker_ = function(pattern, base) { |
return Math.floor(Math.random() * base).toString(base); |
}); |
}; |
+ |
+/** @constructor */ |
+function PasswordManagerExpectations() { |
+ this.requested = { |
+ passwords: 0, |
+ exceptions: 0, |
+ plaintextPassword: 0, |
+ }; |
+ |
+ this.removed = { |
+ passwords: 0, |
+ exceptions: 0, |
+ }; |
+ |
+ this.listening = { |
+ passwords: 0, |
+ exceptions: 0, |
+ }; |
+} |
+ |
+/** |
+ * Test implementation |
+ * @implements {PasswordManager} |
+ * @constructor |
+ */ |
+function TestPasswordManager() { |
+ this.actual_ = new PasswordManagerExpectations(); |
+ |
+ // Set these to have non-empty data. |
+ this.data = { |
+ passwords: [], |
+ exceptions: [], |
+ }; |
+ |
+ // Holds the last callbacks so they can be called when needed/ |
+ this.lastCallback = { |
+ addSavedPasswordListChangedListener: null, |
+ addExceptionListChangedListener: null, |
+ getPlaintextPassword: null, |
+ }; |
+} |
+ |
+TestPasswordManager.prototype = { |
+ /** @override */ |
+ addSavedPasswordListChangedListener: function(listener) { |
+ this.actual_.listening.passwords++; |
+ this.lastCallback.addSavedPasswordListChangedListener = listener; |
+ }, |
+ |
+ /** @override */ |
+ removeSavedPasswordListChangedListener: function(listener) { |
+ this.actual_.listening.passwords--; |
+ }, |
+ |
+ /** @override */ |
+ getSavedPasswordList: function(callback) { |
+ this.actual_.requested.passwords++; |
+ callback(this.data.passwords); |
+ }, |
+ |
+ /** @override */ |
+ removeSavedPassword: function(loginPair) { |
+ this.actual_.removed.passwords++; |
+ |
+ if (this.onRemoveSavedPassword) |
+ this.onRemoveSavedPassword(loginPair); |
+ }, |
+ |
+ /** @override */ |
+ addExceptionListChangedListener: function(listener) { |
+ this.actual_.listening.exceptions++; |
+ this.lastCallback.addExceptionListChangedListener = listener; |
+ }, |
+ |
+ /** @override */ |
+ removeExceptionListChangedListener: function(listener) { |
+ this.actual_.listening.exceptions--; |
+ }, |
+ |
+ /** @override */ |
+ getExceptionList: function(callback) { |
+ this.actual_.requested.exceptions++; |
+ callback(this.data.exceptions); |
+ }, |
+ |
+ /** @override */ |
+ removeException: function(exception) { |
+ this.actual_.removed.exceptions++; |
+ |
+ if (this.onRemoveException) |
+ this.onRemoveException(exception); |
+ }, |
+ |
+ /** @override */ |
+ getPlaintextPassword: function(loginPair, callback) { |
+ this.actual_.requested.plaintextPassword++; |
+ this.lastCallback.getPlaintextPassword = callback; |
+ }, |
+ |
+ /** |
+ * Verifies expectations. |
+ * @param {!PasswordManagerExpectations} expected |
+ */ |
+ assertExpectations: function(expected) { |
+ var actual = this.actual_; |
+ |
+ assertEquals(expected.requested.passwords, actual.requested.passwords); |
+ assertEquals(expected.requested.exceptions, actual.requested.exceptions); |
+ assertEquals(expected.requested.plaintextPassword, |
+ actual.requested.plaintextPassword); |
+ |
+ assertEquals(expected.removed.passwords, actual.removed.passwords); |
+ assertEquals(expected.removed.exceptions, actual.removed.exceptions); |
+ |
+ assertEquals(expected.listening.passwords, actual.listening.passwords); |
+ assertEquals(expected.listening.exceptions, actual.listening.exceptions); |
+ }, |
+}; |
+ |
+/** @constructor */ |
+function AutofillManagerExpectations() { |
+ this.requested = { |
+ addresses: 0, |
+ creditCards: 0, |
+ }; |
+ |
+ this.listening = { |
+ addresses: 0, |
+ creditCards: 0, |
+ }; |
+} |
+ |
+/** |
+ * Test implementation |
+ * @implements {AutofillManager} |
+ * @constructor |
+ */ |
+function TestAutofillManager() { |
+ this.actual_ = new AutofillManagerExpectations(); |
+ |
+ // Set these to have non-empty data. |
+ this.data = { |
+ addresses: [], |
+ creditCards: [], |
+ }; |
+ |
+ // Holds the last callbacks so they can be called when needed. |
+ this.lastCallback = { |
+ addAddressListChangedListener: null, |
+ addCreditCardListChangedListener: null, |
+ }; |
+} |
+ |
+TestAutofillManager.prototype = { |
+ /** @override */ |
+ addAddressListChangedListener: function(listener) { |
+ this.actual_.listening.addresses++; |
+ this.lastCallback.addAddressListChangedListener = listener; |
+ }, |
+ |
+ /** @override */ |
+ removeAddressListChangedListener: function(listener) { |
+ this.actual_.listening.addresses--; |
+ }, |
+ |
+ /** @override */ |
+ getAddressList: function(callback) { |
+ this.actual_.requested.addresses++; |
+ callback(this.data.addresses); |
+ }, |
+ |
+ /** @override */ |
+ addCreditCardListChangedListener: function(listener) { |
+ this.actual_.listening.creditCards++; |
+ this.lastCallback.addCreditCardListChangedListener = listener; |
+ }, |
+ |
+ /** @override */ |
+ removeCreditCardListChangedListener: function(listener) { |
+ this.actual_.listening.creditCards--; |
+ }, |
+ |
+ /** @override */ |
+ getCreditCardList: function(callback) { |
+ this.actual_.requested.creditCards++; |
+ callback(this.data.creditCards); |
+ }, |
+ |
+ /** |
+ * Verifies expectations. |
+ * @param {!AutofillManagerExpectations} expected |
+ */ |
+ assertExpectations: function(expected) { |
+ var actual = this.actual_; |
+ |
+ assertEquals(expected.requested.addresses, actual.requested.addresses); |
+ assertEquals(expected.requested.creditCards, actual.requested.creditCards); |
+ |
+ assertEquals(expected.listening.addresses, actual.listening.addresses); |
+ assertEquals(expected.listening.creditCards, actual.listening.creditCards); |
+ }, |
+}; |