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

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

Issue 9625026: Save password without an associated username. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Refine the unit_test codes Created 8 years, 8 months 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/password_autofill_manager_browsertest.cc
===================================================================
--- chrome/renderer/autofill/password_autofill_manager_browsertest.cc (revision 133421)
+++ chrome/renderer/autofill/password_autofill_manager_browsertest.cc (working copy)
@@ -80,16 +80,17 @@
username3_ = ASCIIToUTF16(kCarolUsername);
password3_ = ASCIIToUTF16(kCarolPassword);
+ FormField password_field;
+ password_field.name = ASCIIToUTF16(kPasswordName);
+ password_field.value = password1_;
+ fill_data_.basic_data.fields.push_back(password_field);
+ fill_data_only_password_.basic_data.fields.push_back(password_field);
+
FormField username_field;
username_field.name = ASCIIToUTF16(kUsernameName);
username_field.value = username1_;
fill_data_.basic_data.fields.push_back(username_field);
- FormField password_field;
- password_field.name = ASCIIToUTF16(kPasswordName);
- password_field.value = password1_;
- fill_data_.basic_data.fields.push_back(password_field);
-
fill_data_.additional_logins[username2_] = password2_;
fill_data_.additional_logins[username3_] = password3_;
@@ -99,6 +100,8 @@
origin += kFormHTML;
fill_data_.basic_data.origin = GURL(origin);
fill_data_.basic_data.action = GURL("http://www.bidule.com");
+ fill_data_only_password_.basic_data.origin = GURL(origin);
+ fill_data_only_password_.basic_data.action = GURL("http://www.bidule.com");
LoadHTML(kFormHTML);
@@ -150,6 +153,13 @@
EXPECT_EQ(password_autofilled, password_element_.isAutofilled());
}
+ void CheckPasswordTextFieldState(const std::string& password,
+ bool password_autofilled) {
+ EXPECT_EQ(password,
+ static_cast<std::string>(password_element_.value().utf8()));
+ EXPECT_EQ(password_autofilled, password_element_.isAutofilled());
+ }
+
void CheckUsernameSelection(int start, int end) {
EXPECT_EQ(start, username_element_.selectionStart());
EXPECT_EQ(end, username_element_.selectionEnd());
@@ -162,6 +172,7 @@
string16 password2_;
string16 password3_;
PasswordFormFillData fill_data_;
+ PasswordFormFillData fill_data_only_password_;
WebInputElement username_element_;
WebInputElement password_element_;
@@ -203,6 +214,17 @@
CheckTextFieldsState(kAliceUsername, true, kAlicePassword, true);
}
+// Tests that the password login is autocompleted as expected when the browser
+// sends back the password info if there is only a password field.
+TEST_F(PasswordAutofillManagerTest, InitialAutocompleteOnlyPassword) {
+ // Simulate the browser sending back the login info, it triggers the
+ // autocomplete.
+ SimulateOnFillPasswordForm(fill_data_only_password_);
+
+ // Only the password should have been autocompleted.
+ CheckPasswordTextFieldState(kAlicePassword, true);
+}
+
// Tests that we correctly fill forms having an empty 'action' attribute.
TEST_F(PasswordAutofillManagerTest, InitialAutocompleteForEmptyAction) {
const char kEmptyActionFormHTML[] =

Powered by Google App Engine
This is Rietveld 408576698