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

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: Case-insensitivity + test 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
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..e4f8138c46eccd41d99395672487bad75426c924 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) {
Dan Beam 2012/11/06 02:24:11 btw, I don't have a ton of experience with these k
Ilya Sherman 2012/11/06 03:45:08 Yeah, I haven't figured out how to write great tes
+ // Don't want any delay for form state sync changes. This will still post a
Dan Beam 2012/11/06 02:22:17 nit: shouldn't this be a double space?
Ilya Sherman 2012/11/06 03:45:08 Done.
+ // 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
« chrome/renderer/autofill/autofill_agent.cc ('K') | « chrome/renderer/autofill/autofill_agent.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698