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 3a3ac4b51a536bb4745a1e8d7f87a50187f07b1c..a05d118be370642c0b29a336ec99852af9876cfa 100644 |
--- a/components/autofill/content/renderer/password_form_conversion_utils_browsertest.cc |
+++ b/components/autofill/content/renderer/password_form_conversion_utils_browsertest.cc |
@@ -298,7 +298,10 @@ TEST_F(MAYBE_PasswordFormConversionUtilsTest, IdentifyingUsernameFields) { |
// When no elements are marked with autocomplete='username', the text-type |
// input field before the first password element should get selected as |
// the username, and the rest should be marked as alternatives. |
- {{nullptr, nullptr, nullptr}, "username2", "William", "John+Smith"}, |
+ {{nullptr, nullptr, nullptr}, |
+ "username2", |
+ "William", |
+ "John+username1, Smith+username3"}, |
// When a sole element is marked with autocomplete='username', it should |
// be treated as the username for sure, with no other_possible_usernames. |
{{"username", nullptr, nullptr}, "username1", "John", ""}, |
@@ -306,21 +309,36 @@ TEST_F(MAYBE_PasswordFormConversionUtilsTest, IdentifyingUsernameFields) { |
{{nullptr, nullptr, "username"}, "username3", "Smith", ""}, |
// When >=2 elements have the attribute, the first should be selected as |
// the username, and the rest should go to other_possible_usernames. |
- {{"username", "username", nullptr}, "username1", "John", "William"}, |
- {{nullptr, "username", "username"}, "username2", "William", "Smith"}, |
- {{"username", nullptr, "username"}, "username1", "John", "Smith"}, |
+ {{"username", "username", nullptr}, |
+ "username1", |
+ "John", |
+ "William+username2"}, |
+ {{nullptr, "username", "username"}, |
+ "username2", |
+ "William", |
+ "Smith+username3"}, |
+ {{"username", nullptr, "username"}, |
+ "username1", |
+ "John", |
+ "Smith+username3"}, |
{{"username", "username", "username"}, |
"username1", |
"John", |
- "William+Smith"}, |
+ "William+username2, Smith+username3"}, |
// When there is an empty autocomplete attribute (i.e. autocomplete=""), |
// it should have the same effect as having no attribute whatsoever. |
- {{"", "", ""}, "username2", "William", "John+Smith"}, |
+ {{"", "", ""}, "username2", "William", "John+username1, Smith+username3"}, |
{{"", "", "username"}, "username3", "Smith", ""}, |
- {{"username", "", "username"}, "username1", "John", "Smith"}, |
+ {{"username", "", "username"}, "username1", "John", "Smith+username3"}, |
// It should not matter if attribute values are upper or mixed case. |
- {{"USERNAME", nullptr, "uSeRNaMe"}, "username1", "John", "Smith"}, |
- {{"uSeRNaMe", nullptr, "USERNAME"}, "username1", "John", "Smith"}}; |
+ {{"USERNAME", nullptr, "uSeRNaMe"}, |
+ "username1", |
+ "John", |
+ "Smith+username3"}, |
+ {{"uSeRNaMe", nullptr, "USERNAME"}, |
+ "username1", |
+ "John", |
+ "Smith+username3"}}; |
for (size_t i = 0; i < arraysize(cases); ++i) { |
for (size_t nonempty_username_fields = 0; nonempty_username_fields < 2; |
@@ -360,8 +378,7 @@ TEST_F(MAYBE_PasswordFormConversionUtilsTest, IdentifyingUsernameFields) { |
EXPECT_EQ(base::UTF8ToUTF16(cases[i].expected_username_value), |
password_form->username_value); |
EXPECT_EQ(base::UTF8ToUTF16(cases[i].expected_other_possible_usernames), |
- base::JoinString(password_form->other_possible_usernames, |
- base::ASCIIToUTF16("+"))); |
+ OtherPossibleUsernamesToStr(*password_form)); |
} else { |
EXPECT_TRUE(password_form->username_value.empty()); |
EXPECT_TRUE(password_form->other_possible_usernames.empty()); |
@@ -427,8 +444,10 @@ TEST_F(MAYBE_PasswordFormConversionUtilsTest, IdentifyingTwoPasswordFields) { |
// Do a basic sanity check that we are still selecting the right username. |
EXPECT_EQ(base::UTF8ToUTF16("username1"), password_form->username_element); |
EXPECT_EQ(base::UTF8ToUTF16("William"), password_form->username_value); |
- EXPECT_THAT(password_form->other_possible_usernames, |
- testing::ElementsAre(base::UTF8ToUTF16("Smith"))); |
+ EXPECT_THAT( |
+ password_form->other_possible_usernames, |
+ testing::ElementsAre(PossibleUsernamePair( |
+ base::UTF8ToUTF16("Smith"), base::UTF8ToUTF16("username2")))); |
} |
} |
@@ -496,8 +515,10 @@ TEST_F(MAYBE_PasswordFormConversionUtilsTest, IdentifyingThreePasswordFields) { |
// Do a basic sanity check that we are still selecting the right username. |
EXPECT_EQ(base::UTF8ToUTF16("username1"), password_form->username_element); |
EXPECT_EQ(base::UTF8ToUTF16("William"), password_form->username_value); |
- EXPECT_THAT(password_form->other_possible_usernames, |
- testing::ElementsAre(base::UTF8ToUTF16("Smith"))); |
+ EXPECT_THAT( |
+ password_form->other_possible_usernames, |
+ testing::ElementsAre(PossibleUsernamePair( |
+ base::UTF8ToUTF16("Smith"), base::UTF8ToUTF16("username2")))); |
} |
} |
@@ -848,11 +869,15 @@ TEST_F(MAYBE_PasswordFormConversionUtilsTest, |
EXPECT_EQ(base::UTF8ToUTF16(cases[i].expected_username_value), |
password_form->username_value); |
if (strcmp(cases[i].expected_username_value, "William") == 0) { |
- EXPECT_THAT(password_form->other_possible_usernames, |
- testing::ElementsAre(base::UTF8ToUTF16("Smith"))); |
+ EXPECT_THAT( |
+ password_form->other_possible_usernames, |
+ testing::ElementsAre(PossibleUsernamePair( |
+ base::UTF8ToUTF16("Smith"), base::UTF8ToUTF16("username2")))); |
} else { |
- EXPECT_THAT(password_form->other_possible_usernames, |
- testing::ElementsAre(base::UTF8ToUTF16("William"))); |
+ EXPECT_THAT( |
+ password_form->other_possible_usernames, |
+ testing::ElementsAre(PossibleUsernamePair( |
+ base::UTF8ToUTF16("William"), base::UTF8ToUTF16("username1")))); |
} |
EXPECT_EQ(base::UTF8ToUTF16(cases[i].expected_password_element), |
password_form->password_element); |