Index: chrome/renderer/autofill/password_generation_agent_browsertest.cc |
diff --git a/chrome/renderer/autofill/password_generation_agent_browsertest.cc b/chrome/renderer/autofill/password_generation_agent_browsertest.cc |
index 7da0adfe1dbb9479d116792b9d458b5970e771c2..59873dc2fbf9cd355750109d69a43d0474a32ace 100644 |
--- a/chrome/renderer/autofill/password_generation_agent_browsertest.cc |
+++ b/chrome/renderer/autofill/password_generation_agent_browsertest.cc |
@@ -250,18 +250,6 @@ const char kNewPasswordAutocompleteAttributeFormHTML[] = |
" <INPUT type = 'submit' value = 'LOGIN' />" |
"</FORM>"; |
-const char ChangeDetectionScript[] = |
- "<script>" |
- " firstOnChangeCalled = false;" |
- " secondOnChangeCalled = false;" |
- " document.getElementById('first_password').onchange = function() {" |
- " firstOnChangeCalled = true;" |
- " };" |
- " document.getElementById('second_password').onchange = function() {" |
- " secondOnChangeCalled = true;" |
- " };" |
- "</script>"; |
- |
const char kPasswordChangeFormHTML[] = |
"<FORM name = 'ChangeWithUsernameForm' action = 'http://www.bidule.com'> " |
" <INPUT type = 'text' id = 'username'/> " |
@@ -316,9 +304,15 @@ TEST_F(PasswordGenerationAgentTest, DetectionTest) { |
} |
TEST_F(PasswordGenerationAgentTest, FillTest) { |
+ // Add event listeners for password fields. |
+ std::vector<base::string16> variables_to_check; |
+ std::string events_registration_script = |
+ CreateScriptToRegisterListeners("first_password", &variables_to_check) + |
+ CreateScriptToRegisterListeners("second_password", &variables_to_check); |
+ |
// Make sure that we are enabled before loading HTML. |
- std::string html = std::string(kAccountCreationFormHTML) + |
- ChangeDetectionScript; |
+ std::string html = |
+ std::string(kAccountCreationFormHTML) + events_registration_script; |
LoadHTMLWithUserGesture(html.c_str()); |
SetNotBlacklistedMessage(password_generation_, html.c_str()); |
SetAccountCreationFormsDetectedMessage(password_generation_, |
@@ -346,19 +340,12 @@ TEST_F(PasswordGenerationAgentTest, FillTest) { |
EXPECT_TRUE(first_password_element.isAutofilled()); |
EXPECT_TRUE(second_password_element.isAutofilled()); |
- // Make sure onchange events are called. |
- int first_onchange_called = -1; |
- int second_onchange_called = -1; |
- ASSERT_TRUE( |
- ExecuteJavaScriptAndReturnIntValue( |
- base::ASCIIToUTF16("firstOnChangeCalled ? 1 : 0"), |
- &first_onchange_called)); |
- EXPECT_EQ(1, first_onchange_called); |
- ASSERT_TRUE( |
- ExecuteJavaScriptAndReturnIntValue( |
- base::ASCIIToUTF16("secondOnChangeCalled ? 1 : 0"), |
- &second_onchange_called)); |
- EXPECT_EQ(1, second_onchange_called); |
+ // Make sure all events are called. |
+ for (const base::string16& variable : variables_to_check) { |
+ int value; |
+ EXPECT_TRUE(ExecuteJavaScriptAndReturnIntValue(variable, &value)); |
+ EXPECT_EQ(1, value) << variable; |
+ } |
// Focus moved to the next input field. |
// TODO(zysxqn): Change this back to the address element once Bug 90224 |