diff options
Diffstat (limited to 'chrome/renderer/autofill/password_generation_agent_browsertest.cc')
-rw-r--r-- | chrome/renderer/autofill/password_generation_agent_browsertest.cc | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/chrome/renderer/autofill/password_generation_agent_browsertest.cc b/chrome/renderer/autofill/password_generation_agent_browsertest.cc index d456a77..ca13450 100644 --- a/chrome/renderer/autofill/password_generation_agent_browsertest.cc +++ b/chrome/renderer/autofill/password_generation_agent_browsertest.cc @@ -110,6 +110,18 @@ const char kInvalidActionAccountCreationFormHTML[] = " <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>"; + TEST_F(PasswordGenerationAgentTest, DetectionTest) { // Don't shown the icon for non account creation forms. LoadHTML(kSigninFormHTML); @@ -143,7 +155,9 @@ TEST_F(PasswordGenerationAgentTest, DetectionTest) { TEST_F(PasswordGenerationAgentTest, FillTest) { // Make sure that we are enabled before loading HTML. - LoadHTML(kAccountCreationFormHTML); + std::string html = std::string(kAccountCreationFormHTML) + + ChangeDetectionScript; + LoadHTML(html.c_str()); WebDocument document = GetMainFrame()->document(); WebElement element = @@ -168,6 +182,20 @@ 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); + // Focus moved to the next input field. // TODO(zysxqn): Change this back to the address element once Bug 90224 // https://bugs.webkit.org/show_bug.cgi?id=90224 has been fixed. |