| Index: chrome/renderer/autofill/autofill_renderer_browsertest.cc
|
| diff --git a/chrome/renderer/autofill/autofill_renderer_browsertest.cc b/chrome/renderer/autofill/autofill_renderer_browsertest.cc
|
| index c1a5f5a4dcfd58d2ca40130ada8b1b734465c9d0..f11d228dcad6491da99e06d1ecbc969be8926d1d 100644
|
| --- a/chrome/renderer/autofill/autofill_renderer_browsertest.cc
|
| +++ b/chrome/renderer/autofill/autofill_renderer_browsertest.cc
|
| @@ -173,4 +173,50 @@ TEST_F(ChromeRenderViewTest, FillFormElement) {
|
| EXPECT_EQ(firstname.value(), WebKit::WebString::fromUTF8("David"));
|
| }
|
|
|
| +TEST_F(ChromeRenderViewTest, ShowAutofillWarning) {
|
| + // Don't want any delay for form state sync changes. This will still post a
|
| + // message so updates will get coalesced, but as soon as we spin the message
|
| + // loop, it will generate an update.
|
| + SendContentStateImmediately();
|
| +
|
| + LoadHTML("<form method=\"POST\" autocomplete=\"Off\">"
|
| + " <input id=\"firstname\" autocomplete=\"OFF\"/>"
|
| + " <input id=\"middlename\"/>"
|
| + " <input id=\"lastname\"/>"
|
| + "</form>");
|
| +
|
| + // Verify that "QueryFormFieldAutofill" isn't sent prior to a user
|
| + // interaction.
|
| + const IPC::Message* message0 = render_thread_->sink().GetFirstMessageMatching(
|
| + AutofillHostMsg_QueryFormFieldAutofill::ID);
|
| + EXPECT_EQ(static_cast<IPC::Message*>(NULL), message0);
|
| +
|
| + WebFrame* web_frame = GetMainFrame();
|
| + WebDocument document = web_frame->document();
|
| + WebInputElement firstname =
|
| + document.getElementById("firstname").to<WebInputElement>();
|
| + WebInputElement middlename =
|
| + document.getElementById("middlename").to<WebInputElement>();
|
| +
|
| + // Simulate attempting to Autofill the form from the first element, which
|
| + // specifies autocomplete="off". This should still not trigger an IPC, as we
|
| + // don't show warnings for elements that have autocomplete="off".
|
| + autofill_agent_->InputElementClicked(firstname, true, true);
|
| + const IPC::Message* message1 = render_thread_->sink().GetFirstMessageMatching(
|
| + AutofillHostMsg_QueryFormFieldAutofill::ID);
|
| + EXPECT_EQ(static_cast<IPC::Message*>(NULL), message1);
|
| +
|
| + // Simulate attempting to Autofill the form from the second element, which
|
| + // does not specify autocomplete="off". This *should* trigger an IPC, as we
|
| + // *do* show warnings for elements that don't themselves set
|
| + // autocomplete="off", but for which the form does.
|
| + autofill_agent_->InputElementClicked(middlename, true, true);
|
| + const IPC::Message* message2 = render_thread_->sink().GetFirstMessageMatching(
|
| + AutofillHostMsg_QueryFormFieldAutofill::ID);
|
| + ASSERT_NE(static_cast<IPC::Message*>(NULL), message2);
|
| + // TODO(isherman): It would be nice to verify here that the message includes
|
| + // the correct data. I'm not sure how to extract that information from an
|
| + // IPC::Message though.
|
| +}
|
| +
|
| } // namespace autofill
|
|
|