Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(529)

Unified Diff: chrome/renderer/autofill/autofill_renderer_browsertest.cc

Issue 11364066: [Autofill] Show a warning if the form disables Autofill. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: LowerCaseEqualsASCII Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/autofill/autofill_agent.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « chrome/renderer/autofill/autofill_agent.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698