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

Unified Diff: chrome/test/data/webui/settings/settings_passwords_section_browsertest.js

Issue 2627123002: Load Passwords and Autofill in the corresponding sub page. (Closed)
Patch Set: rebase Created 3 years, 10 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
« no previous file with comments | « chrome/test/data/webui/settings/settings_autofill_section_browsertest.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/webui/settings/settings_passwords_section_browsertest.js
diff --git a/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js b/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js
index afc5ee581af03b6aa8dcedf9fe2378e76a58f42e..5b62d2e583b2fa432b492c70f003718dcd92527f 100644
--- a/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js
+++ b/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js
@@ -34,12 +34,14 @@ SettingsPasswordSectionBrowserTest.prototype = {
/** @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');
},
+};
+
+/** This test will validate that the section is loaded with data. */
+TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
/**
* Helper method that validates a that elements in the password list match
* the expected data.
@@ -48,7 +50,7 @@ SettingsPasswordSectionBrowserTest.prototype = {
* expected data.
* @private
*/
- validatePasswordList: function(listElement, passwordList) {
+ function validatePasswordList(listElement, passwordList) {
assertEquals(passwordList.length, listElement.items.length);
if (passwordList.length > 0) {
// The first child is a template, skip and get the real 'first child'.
@@ -64,7 +66,7 @@ SettingsPasswordSectionBrowserTest.prototype = {
assertEquals(passwordInfo.numCharactersInPassword,
node.querySelector('#password').value.length);
}
- },
+ }
/**
* Helper method that validates a that elements in the exception list match
@@ -74,7 +76,7 @@ SettingsPasswordSectionBrowserTest.prototype = {
* expected data.
* @private
*/
- validateExceptionList_: function(nodes, exceptionList) {
+ function validateExceptionList(nodes, exceptionList) {
assertEquals(exceptionList.length, nodes.length);
for (var index = 0; index < exceptionList.length; ++index) {
var node = nodes[index];
@@ -84,7 +86,7 @@ SettingsPasswordSectionBrowserTest.prototype = {
assertEquals(exception.linkUrl,
node.querySelector('#exception').href);
}
- },
+ }
/**
* Returns all children of an element that has children added by a dom-repeat.
@@ -92,27 +94,41 @@ SettingsPasswordSectionBrowserTest.prototype = {
* @return {!Array<!Element>}
* @private
*/
- getDomRepeatChildren_: function(element) {
+ function getDomRepeatChildren(element) {
var nodes = element.querySelectorAll('.list-item:not([id])');
return nodes;
- },
+ }
+
+ /**
+ * Allow the iron-list to be sized properly.
+ * @param {!Object} passwordsSection
+ * @private
+ */
+ function flushPasswordSection(passwordsSection) {
+ passwordsSection.$.passwordList.notifyResize();
+ Polymer.dom.flush();
+ }
/**
* Helper method used to create a password section for the given lists.
+ * @param {!PasswordManager} passwordManager
* @param {!Array<!chrome.passwordsPrivate.PasswordUiEntry>} passwordList
* @param {!Array<!chrome.passwordsPrivate.ExceptionPair>} exceptionList
* @return {!Object}
* @private
*/
- createPasswordsSection_: function(passwordList, exceptionList) {
+ function createPasswordsSection(passwordManager, passwordList,
+ exceptionList) {
+ // Override the PasswordManager data for testing.
+ passwordManager.data.passwords = passwordList;
+ passwordManager.data.exceptions = exceptionList;
+
// Create a passwords-section to use for testing.
var passwordsSection = document.createElement('passwords-section');
- passwordsSection.savedPasswords = passwordList;
- passwordsSection.passwordExceptions = exceptionList;
document.body.appendChild(passwordsSection);
- this.flushPasswordSection_(passwordsSection);
+ flushPasswordSection(passwordsSection);
return passwordsSection;
- },
+ }
/**
* Helper method used to create a password editing dialog.
@@ -120,60 +136,55 @@ SettingsPasswordSectionBrowserTest.prototype = {
* @return {!Object}
* @private
*/
- createPasswordDialog_: function(passwordItem) {
+ function createPasswordDialog(passwordItem) {
var passwordDialog = document.createElement('password-edit-dialog');
passwordDialog.item = passwordItem;
document.body.appendChild(passwordDialog);
Polymer.dom.flush();
return passwordDialog;
- },
+ }
/**
* Helper method used to test for a url in a list of passwords.
* @param {!Array<!chrome.passwordsPrivate.PasswordUiEntry>} passwordList
* @param {string} url The URL that is being searched for.
*/
- listContainsUrl(passwordList, url) {
+ function listContainsUrl(passwordList, url) {
for (var i = 0; i < passwordList.length; ++i) {
if (passwordList[i].loginPair.originUrl == url)
return true;
}
return false;
- },
+ }
/**
* Helper method used to test for a url in a list of passwords.
* @param {!Array<!chrome.passwordsPrivate.ExceptionPair>} exceptionList
* @param {string} url The URL that is being searched for.
*/
- exceptionsListContainsUrl(exceptionList, url) {
+ function exceptionsListContainsUrl(exceptionList, url) {
for (var i = 0; i < exceptionList.length; ++i) {
if (exceptionList[i].exceptionUrl == url)
return true;
}
return false;
- },
-
- /**
- * Allow the iron-list to be sized properly.
- * @param {!Object} passwordsSection
- * @private
- */
- flushPasswordSection_: function(passwordsSection) {
- passwordsSection.$.passwordList.notifyResize();
- Polymer.dom.flush();
- },
-};
-
-/** This test will validate that the section is loaded with data. */
-TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
- var self = this;
+ }
suite('PasswordsSection', function() {
+ /** @type {TestPasswordManager} */
+ var passwordManager = null;
+
+ setup(function() {
+ PolymerTest.clearBody();
+ // Override the PasswordManagerImpl for testing.
+ passwordManager = new TestPasswordManager();
+ PasswordManagerImpl.instance_ = passwordManager;
+ });
+
test('verifyNoSavedPasswords', function() {
- var passwordsSection = self.createPasswordsSection_([], []);
+ var passwordsSection = createPasswordsSection(passwordManager, [], []);
- self.validatePasswordList(passwordsSection.$.passwordList, []);
+ validatePasswordList(passwordsSection.$.passwordList, []);
assertFalse(passwordsSection.$.noPasswordsLabel.hidden);
assertTrue(passwordsSection.$.savedPasswordsHeading.hidden);
@@ -189,13 +200,14 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
FakeDataMaker.passwordEntry('site2.com', 'luigi', 8),
];
- var passwordsSection = self.createPasswordsSection_(passwordList, []);
+ var passwordsSection = createPasswordsSection(
+ passwordManager, passwordList, []);
// Assert that the data is passed into the iron list. If this fails,
// then other expectations will also fail.
assertEquals(passwordList, passwordsSection.$.passwordList.items);
- self.validatePasswordList(passwordsSection.$.passwordList, passwordList);
+ validatePasswordList(passwordsSection.$.passwordList, passwordList);
assertTrue(passwordsSection.$.noPasswordsLabel.hidden);
assertFalse(passwordsSection.$.savedPasswordsHeading.hidden);
@@ -209,18 +221,19 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
FakeDataMaker.passwordEntry('website.com', 'mario', 70)
];
- var passwordsSection = self.createPasswordsSection_(passwordList, []);
+ var passwordsSection = createPasswordsSection(
+ passwordManager, passwordList, []);
- self.validatePasswordList(passwordsSection.$.passwordList, passwordList);
+ validatePasswordList(passwordsSection.$.passwordList, passwordList);
// Simulate 'longwebsite.com' being removed from the list.
passwordsSection.splice('savedPasswords', 1, 1);
- self.flushPasswordSection_(passwordsSection);
+ flushPasswordSection(passwordsSection);
- assertFalse(self.listContainsUrl(passwordsSection.savedPasswords,
+ assertFalse(listContainsUrl(passwordsSection.savedPasswords,
'longwebsite.com'));
- assertFalse(self.listContainsUrl(passwordList, 'longwebsite.com'));
+ assertFalse(listContainsUrl(passwordList, 'longwebsite.com'));
- self.validatePasswordList(passwordsSection.$.passwordList, passwordList);
+ validatePasswordList(passwordsSection.$.passwordList, passwordList);
});
// Test verifies that pressing the 'remove' button will trigger a remove
@@ -235,24 +248,24 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
FakeDataMaker.passwordEntry('six', 'one', 6),
];
- var passwordsSection = self.createPasswordsSection_(passwordList, []);
+ var passwordsSection = createPasswordsSection(
+ passwordManager, passwordList, []);
// The first child is a template, skip and get the real 'first child'.
var firstNode = Polymer.dom(passwordsSection.$.passwordList).children[1];
assert(firstNode);
var firstPassword = passwordList[0];
- // Listen for the remove event. If this event isn't received, the test
- // will time out and fail.
- passwordsSection.addEventListener('remove-saved-password',
- function(event) {
+ passwordManager.onRemoveSavedPassword = function(detail) {
// Verify that the event matches the expected value.
- assertEquals(firstPassword.loginPair.originUrl,
- event.detail.originUrl);
- assertEquals(firstPassword.loginPair.username,
- event.detail.username);
+ assertEquals(firstPassword.loginPair.originUrl, detail.originUrl);
+ assertEquals(firstPassword.loginPair.username, detail.username);
+
+ // Clean up after self.
+ passwordManager.onRemoveSavedPassword = null;
+
done();
- });
+ };
// Click the remove button on the first password.
MockInteractions.tap(firstNode.querySelector('#passwordMenu'));
@@ -269,7 +282,8 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
FakeDataMaker.passwordEntry('six-show.com', 'one', 6),
];
- var passwordsSection = self.createPasswordsSection_(passwordList, []);
+ var passwordsSection = createPasswordsSection(
+ passwordManager, passwordList, []);
passwordsSection.filter = 'show';
Polymer.dom.flush();
@@ -280,7 +294,7 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
FakeDataMaker.passwordEntry('six-show.com', 'one', 6),
];
- self.validatePasswordList(passwordsSection.$.passwordList, expectedList);
+ validatePasswordList(passwordsSection.$.passwordList, expectedList);
});
test('verifyFilterPasswordExceptions', function() {
@@ -293,7 +307,8 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
FakeDataMaker.exceptionEntry('plus.google.comshow'),
];
- var passwordsSection = self.createPasswordsSection_([], exceptionList);
+ var passwordsSection = createPasswordsSection(
+ passwordManager, [], exceptionList);
passwordsSection.filter = 'show';
Polymer.dom.flush();
@@ -304,16 +319,16 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
FakeDataMaker.exceptionEntry('plus.google.comshow'),
];
- self.validateExceptionList_(
- self.getDomRepeatChildren_(passwordsSection.$.passwordExceptionsList),
+ validateExceptionList(
+ getDomRepeatChildren(passwordsSection.$.passwordExceptionsList),
expectedExceptionList);
});
test('verifyNoPasswordExceptions', function() {
- var passwordsSection = self.createPasswordsSection_([], []);
+ var passwordsSection = createPasswordsSection(passwordManager, [], []);
- self.validateExceptionList_(
- self.getDomRepeatChildren_(passwordsSection.$.passwordExceptionsList),
+ validateExceptionList(
+ getDomRepeatChildren(passwordsSection.$.passwordExceptionsList),
[]);
assertFalse(passwordsSection.$.noExceptionsLabel.hidden);
@@ -329,10 +344,11 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
FakeDataMaker.exceptionEntry('plus.google.com'),
];
- var passwordsSection = self.createPasswordsSection_([], exceptionList);
+ var passwordsSection = createPasswordsSection(
+ passwordManager, [], exceptionList);
- self.validateExceptionList_(
- self.getDomRepeatChildren_(passwordsSection.$.passwordExceptionsList),
+ validateExceptionList(
+ getDomRepeatChildren(passwordsSection.$.passwordExceptionsList),
exceptionList);
assertTrue(passwordsSection.$.noExceptionsLabel.hidden);
@@ -349,21 +365,22 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
FakeDataMaker.exceptionEntry('plus.google.com'),
];
- var passwordsSection = self.createPasswordsSection_([], exceptionList);
+ var passwordsSection = createPasswordsSection(
+ passwordManager, [], exceptionList);
- self.validateExceptionList_(
- self.getDomRepeatChildren_(passwordsSection.$.passwordExceptionsList),
+ validateExceptionList(
+ getDomRepeatChildren(passwordsSection.$.passwordExceptionsList),
exceptionList);
// Simulate 'mail.com' being removed from the list.
passwordsSection.splice('passwordExceptions', 1, 1);
- assertFalse(self.exceptionsListContainsUrl(
+ assertFalse(exceptionsListContainsUrl(
passwordsSection.passwordExceptions, 'mail.com'));
- assertFalse(self.exceptionsListContainsUrl(exceptionList, 'mail.com'));
- self.flushPasswordSection_(passwordsSection);
+ assertFalse(exceptionsListContainsUrl(exceptionList, 'mail.com'));
+ flushPasswordSection(passwordsSection);
- self.validateExceptionList_(
- self.getDomRepeatChildren_(passwordsSection.$.passwordExceptionsList),
+ validateExceptionList(
+ getDomRepeatChildren(passwordsSection.$.passwordExceptionsList),
exceptionList);
});
@@ -379,10 +396,11 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
FakeDataMaker.exceptionEntry('plus.google.com'),
];
- var passwordsSection = self.createPasswordsSection_([], exceptionList);
+ var passwordsSection = createPasswordsSection(
+ passwordManager, [], exceptionList);
var exceptions =
- self.getDomRepeatChildren_(passwordsSection.$.passwordExceptionsList);
+ getDomRepeatChildren(passwordsSection.$.passwordExceptionsList);
// The index of the button currently being checked.
var index = 0;
@@ -392,19 +410,20 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
exceptions[index].querySelector('#removeExceptionButton'));
};
- // Listen for the remove event. If this event isn't received, the test
- // will time out and fail.
- passwordsSection.addEventListener('remove-password-exception',
- function(event) {
+ passwordManager.onRemoveException = function(detail) {
// Verify that the event matches the expected value.
assertTrue(index < exceptionList.length);
- assertEquals(exceptionList[index].exceptionUrl, event.detail);
+ assertEquals(exceptionList[index].exceptionUrl, detail);
- if (++index < exceptionList.length)
+ if (++index < exceptionList.length) {
clickRemoveButton(); // Click 'remove' on all passwords, one by one.
- else
+ } else {
+ // Clean up after self.
+ passwordManager.onRemoveException = null;
+
done();
- });
+ }
+ };
// Start removing.
clickRemoveButton();
@@ -413,7 +432,7 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
test('showSavedPassword', function() {
var PASSWORD = 'bAn@n@5';
var item = FakeDataMaker.passwordEntry('goo.gl', 'bart', PASSWORD.length);
- var passwordDialog = self.createPasswordDialog_(item);
+ var passwordDialog = createPasswordDialog(item);
passwordDialog.password = PASSWORD;
passwordDialog.showPassword = true;
@@ -430,7 +449,7 @@ TEST_F('SettingsPasswordSectionBrowserTest', 'uiTests', function() {
// Test will timeout if event is not received.
test('onShowSavedPassword', function(done) {
var item = FakeDataMaker.passwordEntry('goo.gl', 'bart', 1);
- var passwordDialog = self.createPasswordDialog_(item);
+ var passwordDialog = createPasswordDialog(item);
passwordDialog.addEventListener('show-password', function(event) {
assertEquals(item.loginPair.originUrl, event.detail.originUrl);
« no previous file with comments | « chrome/test/data/webui/settings/settings_autofill_section_browsertest.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698