Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** @fileoverview Runs the Polymer Password Settings tests. */ | 5 /** @fileoverview Runs the Polymer Password Settings tests. */ |
| 6 | 6 |
| 7 /** @const {string} Path to root from chrome/test/data/webui/settings/. */ | 7 /** @const {string} Path to root from chrome/test/data/webui/settings/. */ |
| 8 var ROOT_PATH = '../../../../../'; | 8 var ROOT_PATH = '../../../../../'; |
| 9 | 9 |
| 10 // Polymer BrowserTest fixture. | 10 // Polymer BrowserTest fixture. |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 99 }, | 99 }, |
| 100 | 100 |
| 101 /** | 101 /** |
| 102 * Helper method used to create a password section for the given lists. | 102 * Helper method used to create a password section for the given lists. |
| 103 * @param {!Array<!chrome.passwordsPrivate.PasswordUiEntry>} passwordList | 103 * @param {!Array<!chrome.passwordsPrivate.PasswordUiEntry>} passwordList |
| 104 * @param {!Array<!chrome.passwordsPrivate.ExceptionPair>} exceptionList | 104 * @param {!Array<!chrome.passwordsPrivate.ExceptionPair>} exceptionList |
| 105 * @return {!Object} | 105 * @return {!Object} |
| 106 * @private | 106 * @private |
| 107 */ | 107 */ |
| 108 createPasswordsSection_: function(passwordList, exceptionList) { | 108 createPasswordsSection_: function(passwordList, exceptionList) { |
| 109 // Override the PasswordManagerImpl for testing. | |
| 110 this.passwordManager = new TestPasswordManager(); | |
| 111 this.passwordManager.data.passwords = passwordList; | |
| 112 this.passwordManager.data.exceptions = exceptionList; | |
| 113 PasswordManagerImpl.instance_ = this.passwordManager; | |
| 114 | |
| 109 // Create a passwords-section to use for testing. | 115 // Create a passwords-section to use for testing. |
| 110 var passwordsSection = document.createElement('passwords-section'); | 116 var passwordsSection = document.createElement('passwords-section'); |
| 111 passwordsSection.savedPasswords = passwordList; | |
| 112 passwordsSection.passwordExceptions = exceptionList; | |
| 113 document.body.appendChild(passwordsSection); | 117 document.body.appendChild(passwordsSection); |
| 114 this.flushPasswordSection_(passwordsSection); | 118 this.flushPasswordSection_(passwordsSection); |
| 115 return passwordsSection; | 119 return passwordsSection; |
| 116 }, | 120 }, |
| 117 | 121 |
| 118 /** | 122 /** |
| 119 * Helper method used to create a password editing dialog. | 123 * Helper method used to create a password editing dialog. |
| 120 * @param {!chrome.passwordsPrivate.PasswordUiEntry} passwordItem | 124 * @param {!chrome.passwordsPrivate.PasswordUiEntry} passwordItem |
| 121 * @return {!Object} | 125 * @return {!Object} |
| 122 * @private | 126 * @private |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 240 FakeDataMaker.passwordEntry('six', 'one', 6), | 244 FakeDataMaker.passwordEntry('six', 'one', 6), |
| 241 ]; | 245 ]; |
| 242 | 246 |
| 243 var passwordsSection = self.createPasswordsSection_(passwordList, []); | 247 var passwordsSection = self.createPasswordsSection_(passwordList, []); |
| 244 | 248 |
| 245 // The first child is a template, skip and get the real 'first child'. | 249 // The first child is a template, skip and get the real 'first child'. |
| 246 var firstNode = Polymer.dom(passwordsSection.$.passwordList).children[1]; | 250 var firstNode = Polymer.dom(passwordsSection.$.passwordList).children[1]; |
| 247 assert(firstNode); | 251 assert(firstNode); |
| 248 var firstPassword = passwordList[0]; | 252 var firstPassword = passwordList[0]; |
| 249 | 253 |
| 250 // Listen for the remove event. If this event isn't received, the test | 254 self.passwordManager.removeSavedPassword = function(detail) { |
|
Dan Beam
2017/01/26 19:10:45
wait, what is this doing? redefining a part of a
hcarmona
2017/01/26 21:34:47
Yes. That's weird. Updated.
| |
| 251 // will time out and fail. | |
| 252 passwordsSection.addEventListener('remove-saved-password', | |
| 253 function(event) { | |
| 254 // Verify that the event matches the expected value. | 255 // Verify that the event matches the expected value. |
| 255 assertEquals(firstPassword.loginPair.originUrl, | 256 assertEquals(firstPassword.loginPair.originUrl, detail.originUrl); |
| 256 event.detail.originUrl); | 257 assertEquals(firstPassword.loginPair.username, detail.username); |
| 257 assertEquals(firstPassword.loginPair.username, | |
| 258 event.detail.username); | |
| 259 done(); | 258 done(); |
| 260 }); | 259 }; |
| 261 | 260 |
| 262 // Click the remove button on the first password. | 261 // Click the remove button on the first password. |
| 263 MockInteractions.tap(firstNode.querySelector('#passwordMenu')); | 262 MockInteractions.tap(firstNode.querySelector('#passwordMenu')); |
| 264 MockInteractions.tap(passwordsSection.$.menuRemovePassword); | 263 MockInteractions.tap(passwordsSection.$.menuRemovePassword); |
| 265 }); | 264 }); |
| 266 | 265 |
| 267 test('verifyFilterPasswords', function() { | 266 test('verifyFilterPasswords', function() { |
| 268 var passwordList = [ | 267 var passwordList = [ |
| 269 FakeDataMaker.passwordEntry('one.com', 'show', 5), | 268 FakeDataMaker.passwordEntry('one.com', 'show', 5), |
| 270 FakeDataMaker.passwordEntry('two.com', 'shower', 3), | 269 FakeDataMaker.passwordEntry('two.com', 'shower', 3), |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 390 self.getDomRepeatChildren_(passwordsSection.$.passwordExceptionsList); | 389 self.getDomRepeatChildren_(passwordsSection.$.passwordExceptionsList); |
| 391 | 390 |
| 392 // The index of the button currently being checked. | 391 // The index of the button currently being checked. |
| 393 var index = 0; | 392 var index = 0; |
| 394 | 393 |
| 395 var clickRemoveButton = function() { | 394 var clickRemoveButton = function() { |
| 396 MockInteractions.tap( | 395 MockInteractions.tap( |
| 397 exceptions[index].querySelector('#removeExceptionButton')); | 396 exceptions[index].querySelector('#removeExceptionButton')); |
| 398 }; | 397 }; |
| 399 | 398 |
| 400 // Listen for the remove event. If this event isn't received, the test | 399 self.passwordManager.removeException = function(detail) { |
| 401 // will time out and fail. | |
| 402 passwordsSection.addEventListener('remove-password-exception', | |
| 403 function(event) { | |
| 404 // Verify that the event matches the expected value. | 400 // Verify that the event matches the expected value. |
| 405 assertTrue(index < exceptionList.length); | 401 assertTrue(index < exceptionList.length); |
| 406 assertEquals(exceptionList[index].exceptionUrl, event.detail); | 402 assertEquals(exceptionList[index].exceptionUrl, detail); |
| 407 | 403 |
| 408 if (++index < exceptionList.length) | 404 if (++index < exceptionList.length) |
| 409 clickRemoveButton(); // Click 'remove' on all passwords, one by one. | 405 clickRemoveButton(); // Click 'remove' on all passwords, one by one. |
| 410 else | 406 else |
| 411 done(); | 407 done(); |
| 412 }); | 408 }; |
| 413 | 409 |
| 414 // Start removing. | 410 // Start removing. |
| 415 clickRemoveButton(); | 411 clickRemoveButton(); |
| 416 }); | 412 }); |
| 417 | 413 |
| 418 test('showSavedPassword', function() { | 414 test('showSavedPassword', function() { |
| 419 var PASSWORD = 'bAn@n@5'; | 415 var PASSWORD = 'bAn@n@5'; |
| 420 var item = FakeDataMaker.passwordEntry('goo.gl', 'bart', PASSWORD.length); | 416 var item = FakeDataMaker.passwordEntry('goo.gl', 'bart', PASSWORD.length); |
| 421 var passwordDialog = self.createPasswordDialog_(item); | 417 var passwordDialog = self.createPasswordDialog_(item); |
| 422 | 418 |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 442 assertEquals(item.loginPair.username, event.detail.username); | 438 assertEquals(item.loginPair.username, event.detail.username); |
| 443 done(); | 439 done(); |
| 444 }); | 440 }); |
| 445 | 441 |
| 446 MockInteractions.tap(passwordDialog.$.showPasswordButton); | 442 MockInteractions.tap(passwordDialog.$.showPasswordButton); |
| 447 }); | 443 }); |
| 448 }); | 444 }); |
| 449 | 445 |
| 450 mocha.run(); | 446 mocha.run(); |
| 451 }); | 447 }); |
| OLD | NEW |