| Index: chrome/browser/autofill/autofill_interactive_uitest.cc
|
| diff --git a/chrome/browser/autofill/autofill_interactive_uitest.cc b/chrome/browser/autofill/autofill_interactive_uitest.cc
|
| index 045f69244e0b00706883891d7e9f1e68c61206ac..5775936d2536b474712ccdb2d6dc35084c5c72b3 100644
|
| --- a/chrome/browser/autofill/autofill_interactive_uitest.cc
|
| +++ b/chrome/browser/autofill/autofill_interactive_uitest.cc
|
| @@ -103,6 +103,66 @@ static const char kTestPasswordFormString[] =
|
| "<input type=\"submit\" value=\"Submit\">"
|
| "</form>";
|
|
|
| +// TODO(crbug.com/609861): Remove the autocomplete attribute from the textarea
|
| +// field when the bug is fixed.
|
| +static const char kTestEventFormString[] =
|
| + "<script type=\"text/javascript\">"
|
| + "var inputfocus = false;"
|
| + "var inputkeydown = false;"
|
| + "var inputinput = false;"
|
| + "var inputchange = false;"
|
| + "var inputkeyup = false;"
|
| + "var inputblur = false;"
|
| + "var textfocus = false;"
|
| + "var textkeydown = false;"
|
| + "var textinput= false;"
|
| + "var textchange = false;"
|
| + "var textkeyup = false;"
|
| + "var textblur = false;"
|
| + "var selectfocus = false;"
|
| + "var selectinput = false;"
|
| + "var selectchange = false;"
|
| + "var selectblur = false;"
|
| + "</script>"
|
| + "<form action=\"http://www.example.com/\" method=\"POST\">"
|
| + "<label for=\"firstname\">First name:</label>"
|
| + " <input type=\"text\" id=\"firstname\""
|
| + " onfocus=\"domAutomationController.send(true)\"><br>"
|
| + "<label for=\"lastname\">Last name:</label>"
|
| + " <input type=\"text\" id=\"lastname\""
|
| + " onfocus=\"inputfocus = true\" onkeydown=\"inputkeydown = true\""
|
| + " oninput=\"inputinput = true\" onchange=\"inputchange = true\""
|
| + " onkeyup=\"inputkeyup = true\" onblur=\"inputblur = true\" ><br>"
|
| + "<label for=\"address1\">Address line 1:</label>"
|
| + " <input type=\"text\" id=\"address1\"><br>"
|
| + "<label for=\"address2\">Address line 2:</label>"
|
| + " <input type=\"text\" id=\"address2\"><br>"
|
| + "<label for=\"city\">City:</label>"
|
| + " <textarea rows=\"4\" cols=\"50\" id=\"city\" name=\"city\""
|
| + " autocomplete=\"address-level2\" onfocus=\"textfocus = true\""
|
| + " onkeydown=\"textkeydown = true\" oninput=\"textinput = true\""
|
| + " onchange=\"textchange = true\" onkeyup=\"textkeyup = true\""
|
| + " onblur=\"textblur = true\"></textarea><br>"
|
| + "<label for=\"state\">State:</label>"
|
| + " <select id=\"state\""
|
| + " onfocus=\"selectfocus = true\" oninput=\"selectinput = true\""
|
| + " onchange=\"selectchange = true\" onblur=\"selectblur = true\" >"
|
| + " <option value=\"\" selected=\"yes\">--</option>"
|
| + " <option value=\"CA\">California</option>"
|
| + " <option value=\"TX\">Texas</option>"
|
| + " </select><br>"
|
| + "<label for=\"zip\">ZIP code:</label>"
|
| + " <input type=\"text\" id=\"zip\"><br>"
|
| + "<label for=\"country\">Country:</label>"
|
| + " <select id=\"country\">"
|
| + " <option value=\"\" selected=\"yes\">--</option>"
|
| + " <option value=\"CA\">Canada</option>"
|
| + " <option value=\"US\">United States</option>"
|
| + " </select><br>"
|
| + "<label for=\"phone\">Phone number:</label>"
|
| + " <input type=\"text\" id=\"phone\"><br>"
|
| + "</form>";
|
| +
|
| // AutofillManagerTestDelegateImpl --------------------------------------------
|
|
|
| class AutofillManagerTestDelegateImpl
|
| @@ -1180,6 +1240,105 @@ IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest, AutofillAfterReload) {
|
| TryBasicFormFill();
|
| }
|
|
|
| +// Test that filling a form sends all the expected events to the different
|
| +// fields being filled.
|
| +IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest, AutofillEvents) {
|
| + CreateTestProfile();
|
| +
|
| + // Load the test page.
|
| + ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL(
|
| + browser(), GURL(std::string(kDataURIPrefix) + kTestEventFormString)));
|
| +
|
| + // Invoke Autofill.
|
| + TryBasicFormFill();
|
| +
|
| + // Checks that all the events were fired for the input field.
|
| + bool input_focus_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(inputfocus);",
|
| + &input_focus_triggered));
|
| + EXPECT_TRUE(input_focus_triggered);
|
| + bool input_keydown_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(inputkeydown);",
|
| + &input_keydown_triggered));
|
| + EXPECT_TRUE(input_keydown_triggered);
|
| + bool input_input_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(inputinput);",
|
| + &input_input_triggered));
|
| + EXPECT_TRUE(input_input_triggered);
|
| + bool input_change_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(inputchange);",
|
| + &input_change_triggered));
|
| + EXPECT_TRUE(input_change_triggered);
|
| + bool input_keyup_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(inputkeyup);",
|
| + &input_keyup_triggered));
|
| + EXPECT_TRUE(input_keyup_triggered);
|
| + bool input_blur_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(inputblur);",
|
| + &input_blur_triggered));
|
| + EXPECT_TRUE(input_blur_triggered);
|
| +
|
| + // Checks that all the events were fired for the textarea field.
|
| + bool text_focus_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(textfocus);",
|
| + &text_focus_triggered));
|
| + EXPECT_TRUE(text_focus_triggered);
|
| + bool text_keydown_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(textkeydown);",
|
| + &text_keydown_triggered));
|
| + EXPECT_TRUE(text_keydown_triggered);
|
| + bool text_input_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(textinput);",
|
| + &text_input_triggered));
|
| + EXPECT_TRUE(text_input_triggered);
|
| + bool text_change_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(textchange);",
|
| + &text_change_triggered));
|
| + EXPECT_TRUE(text_change_triggered);
|
| + bool text_keyup_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(textkeyup);",
|
| + &text_keyup_triggered));
|
| + EXPECT_TRUE(text_keyup_triggered);
|
| + bool text_blur_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(textblur);",
|
| + &text_blur_triggered));
|
| + EXPECT_TRUE(text_blur_triggered);
|
| +
|
| + // Checks that all the events were fired for the select field.
|
| + bool select_focus_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(selectfocus);",
|
| + &select_focus_triggered));
|
| + EXPECT_TRUE(select_focus_triggered);
|
| + bool select_input_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(selectinput);",
|
| + &select_input_triggered));
|
| + EXPECT_TRUE(select_input_triggered);
|
| + bool select_change_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(selectchange);",
|
| + &select_change_triggered));
|
| + EXPECT_TRUE(select_change_triggered);
|
| + bool select_blur_triggered;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + GetRenderViewHost(), "domAutomationController.send(selectblur);",
|
| + &select_blur_triggered));
|
| + EXPECT_TRUE(select_blur_triggered);
|
| +}
|
| +
|
| // Test fails on Linux ASAN, see http://crbug.com/532737
|
| #if defined(ADDRESS_SANITIZER)
|
| #define MAYBE_AutofillAfterTranslate DISABLED_AutofillAfterTranslate
|
|
|