Index: components/autofill/content/renderer/password_form_conversion_utils_browsertest.cc |
diff --git a/components/autofill/content/renderer/password_form_conversion_utils_browsertest.cc b/components/autofill/content/renderer/password_form_conversion_utils_browsertest.cc |
index 3b08dbcf4db100934cd7f7e2f6d983216fb221f2..1db126c7285b0d4513c94838e6797fd0e113013c 100644 |
--- a/components/autofill/content/renderer/password_form_conversion_utils_browsertest.cc |
+++ b/components/autofill/content/renderer/password_form_conversion_utils_browsertest.cc |
@@ -705,6 +705,65 @@ TEST_F(MAYBE_PasswordFormConversionUtilsTest, OnlyNonDisplayedLoginPair) { |
password_form->password_value); |
} |
+TEST_F(MAYBE_PasswordFormConversionUtilsTest, |
+ VisiblePasswordAndInvisibleUsername) { |
+ PasswordFormBuilder builder(kTestFormActionURL); |
+ |
+ builder.AddNonDisplayedTextField("username", "William"); |
+ builder.AddPasswordField("password", "secret", NULL); |
+ builder.AddSubmitButton("submit"); |
+ std::string html = builder.ProduceHTML(); |
+ |
+ scoped_ptr<PasswordForm> password_form; |
+ ASSERT_NO_FATAL_FAILURE( |
+ LoadHTMLAndConvertForm(html, &password_form, nullptr)); |
+ ASSERT_TRUE(password_form); |
+ EXPECT_EQ(base::UTF8ToUTF16("username"), password_form->username_element); |
+ EXPECT_EQ(base::UTF8ToUTF16("William"), password_form->username_value); |
+ EXPECT_EQ(base::UTF8ToUTF16("password"), password_form->password_element); |
+ EXPECT_EQ(base::UTF8ToUTF16("secret"), password_form->password_value); |
+} |
+ |
+TEST_F(MAYBE_PasswordFormConversionUtilsTest, |
+ InvisiblePassword_LatestUsernameIsVisible) { |
+ PasswordFormBuilder builder(kTestFormActionURL); |
+ |
+ builder.AddNonDisplayedTextField("search", "query"); |
+ builder.AddTextField("username", "William", NULL); |
+ builder.AddNonDisplayedPasswordField("password", "secret"); |
+ builder.AddSubmitButton("submit"); |
+ std::string html = builder.ProduceHTML(); |
+ |
+ scoped_ptr<PasswordForm> password_form; |
+ ASSERT_NO_FATAL_FAILURE( |
+ LoadHTMLAndConvertForm(html, &password_form, nullptr)); |
+ ASSERT_TRUE(password_form); |
+ EXPECT_EQ(base::UTF8ToUTF16("username"), password_form->username_element); |
+ EXPECT_EQ(base::UTF8ToUTF16("William"), password_form->username_value); |
+ EXPECT_EQ(base::UTF8ToUTF16("password"), password_form->password_element); |
+ EXPECT_EQ(base::UTF8ToUTF16("secret"), password_form->password_value); |
+} |
+ |
+TEST_F(MAYBE_PasswordFormConversionUtilsTest, |
+ InvisiblePassword_LatestUsernameIsInvisible) { |
+ PasswordFormBuilder builder(kTestFormActionURL); |
+ |
+ builder.AddTextField("search", "query", NULL); |
+ builder.AddNonDisplayedTextField("username", "William"); |
+ builder.AddNonDisplayedPasswordField("password", "secret"); |
+ builder.AddSubmitButton("submit"); |
+ std::string html = builder.ProduceHTML(); |
+ |
+ scoped_ptr<PasswordForm> password_form; |
+ ASSERT_NO_FATAL_FAILURE( |
+ LoadHTMLAndConvertForm(html, &password_form, nullptr)); |
+ ASSERT_TRUE(password_form); |
+ EXPECT_EQ(base::UTF8ToUTF16("username"), password_form->username_element); |
+ EXPECT_EQ(base::UTF8ToUTF16("William"), password_form->username_value); |
+ EXPECT_EQ(base::UTF8ToUTF16("password"), password_form->password_element); |
+ EXPECT_EQ(base::UTF8ToUTF16("secret"), password_form->password_value); |
+} |
+ |
TEST_F(MAYBE_PasswordFormConversionUtilsTest, InvalidFormDueToBadActionURL) { |
PasswordFormBuilder builder("invalid_target"); |
builder.AddTextField("username", "JohnSmith", NULL); |