Index: chrome/test/data/webui/settings/passwords_and_forms_browsertest.js |
diff --git a/chrome/test/data/webui/settings/passwords_and_forms_browsertest.js b/chrome/test/data/webui/settings/passwords_and_forms_browsertest.js |
index ebfa056d981aa019747f9f439aaddad0d16ae614..330d831bf9644e507c65b428601b1ab9f1375cd9 100644 |
--- a/chrome/test/data/webui/settings/passwords_and_forms_browsertest.js |
+++ b/chrome/test/data/webui/settings/passwords_and_forms_browsertest.js |
@@ -15,200 +15,6 @@ GEN_INCLUDE( |
GEN_INCLUDE([ROOT_PATH + |
'chrome/test/data/webui/settings/passwords_and_autofill_fake_data.js']); |
-function PasswordManagerExpectations() {}; |
-PasswordManagerExpectations.prototype = { |
- requested: { |
- passwords: 0, |
- exceptions: 0, |
- plaintextPassword: 0, |
- }, |
- |
- removed: { |
- passwords: 0, |
- exceptions: 0, |
- }, |
- |
- listening: { |
- passwords: 0, |
- exceptions: 0, |
- }, |
-}; |
- |
-/** |
- * Test implementation |
- * @implements {PasswordManager} |
- * @constructor |
- */ |
-function TestPasswordManager() { |
- this.actual_ = new PasswordManagerExpectations(); |
-}; |
-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++; |
- }, |
- |
- /** @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++; |
- }, |
- |
- /** @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); |
- }, |
- |
- // Set these to have non-empty data. |
- data: { |
- passwords: [], |
- exceptions: [], |
- }, |
- |
- // Holds the last callbacks so they can be called when needed/ |
- lastCallback: { |
- addSavedPasswordListChangedListener: null, |
- addExceptionListChangedListener: null, |
- getPlaintextPassword: null, |
- }, |
-}; |
- |
-function AutofillManagerExpectations() {}; |
-AutofillManagerExpectations.prototype = { |
- requested: { |
- addresses: 0, |
- creditCards: 0, |
- }, |
- |
- listening: { |
- addresses: 0, |
- creditCards: 0, |
- }, |
-}; |
- |
-/** |
- * Test implementation |
- * @implements {AutofillManager} |
- * @constructor |
- */ |
-function TestAutofillManager() { |
- this.actual_ = new AutofillManagerExpectations(); |
-}; |
-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); |
- }, |
- |
- // Set these to have non-empty data. |
- data: { |
- addresses: [], |
- creditCards: [], |
- }, |
- |
- // Holds the last callbacks so they can be called when needed/ |
- lastCallback: { |
- addAddressListChangedListener: null, |
- addCreditCardListChangedListener: null, |
- }, |
-}; |
- |
/** |
* @constructor |
* @extends {PolymerTest} |
@@ -220,222 +26,253 @@ PasswordsAndFormsBrowserTest.prototype = { |
/** @override */ |
browsePreload: 'chrome://md-settings/passwords_and_forms_page/' + |
- 'passwords_and_forms_page.html', |
+ 'passwords_and_forms_page.html', |
/** @override */ |
extraLibraries: PolymerTest.getLibraries(ROOT_PATH).concat([ |
- '../fake_chrome_event.js', |
- 'fake_settings_private.js', |
+ '../fake_chrome_event.js', |
+ 'fake_settings_private.js', |
]), |
/** @override */ |
setUp: function() { |
PolymerTest.prototype.setUp.call(this); |
- PolymerTest.clearBody(); |
// Test is run on an individual element that won't have a page language. |
this.accessibilityAuditConfig.auditRulesToIgnore.push('humanLangMissing'); |
- |
- // Override the PasswordManagerImpl for testing. |
- this.passwordManager = new TestPasswordManager(); |
- PasswordManagerImpl.instance_ = this.passwordManager; |
- |
- // Override the AutofillManagerImpl for testing. |
- this.autofillManager = new TestAutofillManager(); |
- AutofillManagerImpl.instance_ = this.autofillManager; |
}, |
+}; |
+ |
+/** This test will validate that the section is loaded with data. */ |
+TEST_F('PasswordsAndFormsBrowserTest', 'uiTests', function() { |
+ var passwordManager; |
+ var autofillManager; |
/** |
* Creates a new passwords and forms element. |
* @return {!Object} |
*/ |
- createPasswordsAndFormsElement: function() { |
+ function createPasswordsAndFormsElement(prefsElement) { |
var element = document.createElement('settings-passwords-and-forms-page'); |
+ element.prefs = prefsElement.prefs; |
document.body.appendChild(element); |
+ element.$$('template[route-path="/passwords"]').if = true; |
+ element.$$('template[route-path="/autofill"]').if = true; |
Polymer.dom.flush(); |
return element; |
- }, |
+ } |
/** |
* @pram {boolean} autofill Whether autofill is enabled or not. |
* @param {boolean} passwords Whether passwords are enabled or not. |
- * @return {!Promise<!Element>} The |prefs| object. |
+ * @return {!Promise<!Element>} The |prefs| element. |
*/ |
- createPrefs: function(autofill, passwords) { |
+ function createPrefs(autofill, passwords) { |
return new Promise(function(resolve) { |
CrSettingsPrefs.deferInitialization = true; |
var prefs = document.createElement('settings-prefs'); |
prefs.initialize(new settings.FakeSettingsPrivate([ |
- { |
- key: 'autofill.enabled', |
- type: chrome.settingsPrivate.PrefType.BOOLEAN, |
- value: autofill, |
- }, |
- { |
- key: 'credentials_enable_service', |
- type: chrome.settingsPrivate.PrefType.BOOLEAN, |
- value: passwords, |
- }, |
+ { |
+ key: 'autofill.enabled', |
+ type: chrome.settingsPrivate.PrefType.BOOLEAN, |
+ value: autofill, |
+ }, |
+ { |
+ key: 'credentials_enable_service', |
+ type: chrome.settingsPrivate.PrefType.BOOLEAN, |
+ value: passwords, |
+ }, |
+ { |
+ key: 'credentials_enable_autosignin', |
+ type: chrome.settingsPrivate.PrefType.BOOLEAN, |
+ value: true, |
+ }, |
])); |
CrSettingsPrefs.initialized.then(function() { |
resolve(prefs); |
}); |
}); |
- }, |
+ } |
/** |
* Cleans up prefs so tests can continue to run. |
* @param {!Element} prefs The prefs element. |
*/ |
- destroyPrefs: function(prefs) { |
+ function destroyPrefs(prefs) { |
CrSettingsPrefs.resetForTesting(); |
CrSettingsPrefs.deferInitialization = false; |
prefs.resetForTesting(); |
- }, |
+ } |
/** |
* Creates PasswordManagerExpectations with the values expected after first |
* creating the element. |
* @return {!PasswordManagerExpectations} |
*/ |
- basePasswordExpectations: function() { |
+ function basePasswordExpectations() { |
var expected = new PasswordManagerExpectations(); |
expected.requested.passwords = 1; |
expected.requested.exceptions = 1; |
expected.listening.passwords = 1; |
expected.listening.exceptions = 1; |
return expected; |
- }, |
+ } |
/** |
* Creates AutofillManagerExpectations with the values expected after first |
* creating the element. |
* @return {!AutofillManagerExpectations} |
*/ |
- baseAutofillExpectations: function() { |
+ function baseAutofillExpectations() { |
var expected = new AutofillManagerExpectations(); |
expected.requested.addresses = 1; |
expected.requested.creditCards = 1; |
expected.listening.addresses = 1; |
expected.listening.creditCards = 1; |
return expected; |
- }, |
-}; |
+ } |
-/** This test will validate that the section is loaded with data. */ |
-TEST_F('PasswordsAndFormsBrowserTest', 'uiTests', function() { |
- var self = this; |
+ setup(function() { |
+ PolymerTest.clearBody(); |
+ |
+ // Override the PasswordManagerImpl for testing. |
+ passwordManager = new TestPasswordManager(); |
+ PasswordManagerImpl.instance_ = passwordManager; |
+ |
+ // Override the AutofillManagerImpl for testing. |
+ autofillManager = new TestAutofillManager(); |
+ AutofillManagerImpl.instance_ = autofillManager; |
+ }); |
suite('PasswordsAndForms', function() { |
test('baseLoadAndRemove', function() { |
- var element = self.createPasswordsAndFormsElement(); |
+ return createPrefs(true, true).then(function(prefs) { |
+ var element = createPasswordsAndFormsElement(prefs); |
+ |
+ var passwordsExpectations = basePasswordExpectations(); |
+ passwordManager.assertExpectations(passwordsExpectations); |
- var passwordsExpectations = self.basePasswordExpectations(); |
- self.passwordManager.assertExpectations(passwordsExpectations); |
+ var autofillExpectations = baseAutofillExpectations(); |
+ autofillManager.assertExpectations(autofillExpectations); |
- var autofillExpectations = self.baseAutofillExpectations(); |
- self.autofillManager.assertExpectations(autofillExpectations); |
+ element.remove(); |
+ Polymer.dom.flush(); |
- element.remove(); |
- Polymer.dom.flush(); |
+ passwordsExpectations.listening.passwords = 0; |
+ passwordsExpectations.listening.exceptions = 0; |
+ passwordManager.assertExpectations(passwordsExpectations); |
- passwordsExpectations.listening.passwords = 0; |
- passwordsExpectations.listening.exceptions = 0; |
- self.passwordManager.assertExpectations(passwordsExpectations); |
+ autofillExpectations.listening.addresses = 0; |
+ autofillExpectations.listening.creditCards = 0; |
+ autofillManager.assertExpectations(autofillExpectations); |
- autofillExpectations.listening.addresses = 0; |
- autofillExpectations.listening.creditCards = 0; |
- self.autofillManager.assertExpectations(autofillExpectations); |
+ destroyPrefs(prefs); |
+ }); |
}); |
test('loadPasswordsAsync', function() { |
- var element = self.createPasswordsAndFormsElement(); |
+ return createPrefs(true, true).then(function(prefs) { |
+ var element = createPasswordsAndFormsElement(prefs); |
- var list = [FakeDataMaker.passwordEntry(), FakeDataMaker.passwordEntry()]; |
- self.passwordManager.lastCallback.addSavedPasswordListChangedListener( |
- list); |
- Polymer.dom.flush(); |
+ var list = [ |
+ FakeDataMaker.passwordEntry(), |
+ FakeDataMaker.passwordEntry() |
+ ]; |
- assertEquals(list, element.savedPasswords); |
+ passwordManager.lastCallback.addSavedPasswordListChangedListener(list); |
+ Polymer.dom.flush(); |
+ |
+ assertEquals(list, element.$$('#passwordSection').savedPasswords); |
- // The callback is coming from the manager, so the element shouldn't have |
- // additional calls to the manager after the base expectations. |
- self.passwordManager.assertExpectations(self.basePasswordExpectations()); |
- self.autofillManager.assertExpectations(self.baseAutofillExpectations()); |
+ // The callback is coming from the manager, so the element shouldn't |
+ // have additional calls to the manager after the base expectations. |
+ passwordManager.assertExpectations(basePasswordExpectations()); |
+ autofillManager.assertExpectations(baseAutofillExpectations()); |
+ |
+ destroyPrefs(prefs); |
+ }); |
}); |
test('loadExceptionsAsync', function() { |
- var element = self.createPasswordsAndFormsElement(); |
+ return createPrefs(true, true).then(function(prefs) { |
+ var element = createPasswordsAndFormsElement(prefs); |
- var list = [FakeDataMaker.exceptionEntry(), |
- FakeDataMaker.exceptionEntry()]; |
- self.passwordManager.lastCallback.addExceptionListChangedListener( |
- list); |
- Polymer.dom.flush(); |
+ var list = [FakeDataMaker.exceptionEntry(), |
+ FakeDataMaker.exceptionEntry()]; |
+ passwordManager.lastCallback.addExceptionListChangedListener(list); |
+ Polymer.dom.flush(); |
+ |
+ assertEquals(list, element.$$('#passwordSection').passwordExceptions); |
- assertEquals(list, element.passwordExceptions); |
+ // The callback is coming from the manager, so the element shouldn't |
+ // have additional calls to the manager after the base expectations. |
+ passwordManager.assertExpectations(basePasswordExpectations()); |
+ autofillManager.assertExpectations(baseAutofillExpectations()); |
- // The callback is coming from the manager, so the element shouldn't have |
- // additional calls to the manager after the base expectations. |
- self.passwordManager.assertExpectations(self.basePasswordExpectations()); |
- self.autofillManager.assertExpectations(self.baseAutofillExpectations()); |
+ destroyPrefs(prefs); |
+ }); |
}); |
test('loadAddressesAsync', function() { |
- var element = self.createPasswordsAndFormsElement(); |
+ return createPrefs(true, true).then(function(prefs) { |
+ var element = createPasswordsAndFormsElement(prefs); |
+ |
+ var list = [FakeDataMaker.addressEntry(), FakeDataMaker.addressEntry()]; |
+ autofillManager.lastCallback.addAddressListChangedListener(list); |
+ Polymer.dom.flush(); |
- var list = [FakeDataMaker.addressEntry(), FakeDataMaker.addressEntry()]; |
- self.autofillManager.lastCallback.addAddressListChangedListener(list); |
- Polymer.dom.flush(); |
+ assertEquals(list, element.$$('#autofillSection').addresses); |
- assertEquals(list, element.addresses); |
+ // The callback is coming from the manager, so the element shouldn't |
+ // have additional calls to the manager after the base expectations. |
+ passwordManager.assertExpectations(basePasswordExpectations()); |
+ autofillManager.assertExpectations(baseAutofillExpectations()); |
- // The callback is coming from the manager, so the element shouldn't have |
- // additional calls to the manager after the base expectations. |
- self.passwordManager.assertExpectations(self.basePasswordExpectations()); |
- self.autofillManager.assertExpectations(self.baseAutofillExpectations()); |
+ destroyPrefs(prefs); |
+ }); |
}); |
test('loadCreditCardsAsync', function() { |
- var element = self.createPasswordsAndFormsElement(); |
+ return createPrefs(true, true).then(function(prefs) { |
+ var element = createPasswordsAndFormsElement(prefs); |
+ |
+ var list = [FakeDataMaker.creditCardEntry(), |
+ FakeDataMaker.creditCardEntry()]; |
+ autofillManager.lastCallback.addCreditCardListChangedListener(list); |
+ Polymer.dom.flush(); |
- var list = [FakeDataMaker.creditCardEntry(), |
- FakeDataMaker.creditCardEntry()]; |
- self.autofillManager.lastCallback.addCreditCardListChangedListener(list); |
- Polymer.dom.flush(); |
+ assertEquals(list, element.$$('#autofillSection').creditCards); |
- assertEquals(list, element.creditCards); |
+ // The callback is coming from the manager, so the element shouldn't |
+ // have additional calls to the manager after the base expectations. |
+ passwordManager.assertExpectations(basePasswordExpectations()); |
+ autofillManager.assertExpectations(baseAutofillExpectations()); |
- // The callback is coming from the manager, so the element shouldn't have |
- // additional calls to the manager after the base expectations. |
- self.passwordManager.assertExpectations(self.basePasswordExpectations()); |
- self.autofillManager.assertExpectations(self.baseAutofillExpectations()); |
+ destroyPrefs(prefs); |
+ }); |
}); |
test('testActionabilityNope', function() { |
- return self.createPrefs(false, false).then(function(prefs) { |
- var element = self.createPasswordsAndFormsElement(); |
- element.prefs = prefs.prefs; |
- Polymer.dom.flush(); |
+ return createPrefs(false, false).then(function(prefs) { |
+ |
+ var element = createPasswordsAndFormsElement(prefs); |
assertFalse(element.$.autofillManagerButton.hasAttribute('actionable')); |
assertFalse(element.$.passwordManagerButton.hasAttribute('actionable')); |
- self.destroyPrefs(prefs); |
+ destroyPrefs(prefs); |
}); |
}); |
test('testActionabilityYes', function() { |
- return self.createPrefs(true, true).then(function(prefs) { |
- var element = self.createPasswordsAndFormsElement(); |
- element.prefs = prefs.prefs; |
- Polymer.dom.flush(); |
+ return createPrefs(true, true).then(function(prefs) { |
+ var element = createPasswordsAndFormsElement(prefs); |
assertTrue(element.$.autofillManagerButton.hasAttribute('actionable')); |
assertTrue(element.$.passwordManagerButton.hasAttribute('actionable')); |
- self.destroyPrefs(prefs); |
+ destroyPrefs(prefs); |
}); |
}); |
}); |