Index: components/autofill/content/public/cpp/autofill_types_struct_traits_unittest.cc |
diff --git a/components/autofill/content/public/cpp/autofill_types_struct_traits_unittest.cc b/components/autofill/content/public/cpp/autofill_types_struct_traits_unittest.cc |
index 61a441681765bc1f01e31e84dd3414e59147fc53..0416fd8afc6c6a7fdd5f19d24c0e72709c7fab43 100644 |
--- a/components/autofill/content/public/cpp/autofill_types_struct_traits_unittest.cc |
+++ b/components/autofill/content/public/cpp/autofill_types_struct_traits_unittest.cc |
@@ -72,6 +72,48 @@ void CreateTestPasswordFormFillData(PasswordFormFillData* fill_data) { |
fill_data->is_possible_change_password_form = false; |
} |
+void CreateTestPasswordForm(PasswordForm* form) { |
+ form->scheme = PasswordForm::Scheme::SCHEME_HTML; |
+ form->signon_realm = "https://foo.com/"; |
+ form->origin = GURL("https://foo.com/"); |
+ form->action = GURL("https://foo.com/login"); |
+ form->affiliated_web_realm = "https://foo.com/"; |
+ form->submit_element = base::ASCIIToUTF16("test_submit"); |
+ form->username_element = base::ASCIIToUTF16("username"); |
+ form->username_marked_by_site = true; |
+ form->username_value = base::ASCIIToUTF16("test@gmail.com"); |
+ form->other_possible_usernames.push_back(base::ASCIIToUTF16("Jerry_1")); |
+ form->other_possible_usernames.push_back(base::ASCIIToUTF16("Jerry_2")); |
+ form->password_element = base::ASCIIToUTF16("password"); |
+ form->password_value = base::ASCIIToUTF16("test"); |
+ form->password_value_is_default = true; |
+ form->new_password_element = base::ASCIIToUTF16("new_password"); |
+ form->new_password_value = base::ASCIIToUTF16("new_password_value"); |
+ form->new_password_value_is_default = false; |
+ form->new_password_marked_by_site = false; |
+ form->ssl_valid = true; |
+ form->preferred = false; |
+ form->date_created = base::Time::Now(); |
+ form->date_synced = base::Time::Now(); |
+ form->blacklisted_by_user = false; |
+ form->type = PasswordForm::Type::TYPE_GENERATED; |
+ form->times_used = 999; |
+ test::CreateTestAddressFormData(&form->form_data); |
+ form->generation_upload_status = |
+ PasswordForm::GenerationUploadStatus::POSITIVE_SIGNAL_SENT; |
+ form->display_name = base::ASCIIToUTF16("test display name"); |
+ form->icon_url = GURL("https://foo.com/icon.png"); |
+ form->federation_origin = |
+ url::Origin::UnsafelyCreateOriginWithoutNormalization( |
+ "http", "www.google.com", 80); |
+ form->skip_zero_click = false; |
+ form->layout = PasswordForm::Layout::LAYOUT_LOGIN_AND_SIGNUP; |
+ form->was_parsed_using_autofill_predictions = false; |
+ form->is_public_suffix_match = true; |
+ form->is_affiliation_based_match = true; |
+ form->does_look_like_signup_form = true; |
+} |
+ |
void CheckEqualPasswordFormFillData(const PasswordFormFillData& expected, |
const PasswordFormFillData& actual) { |
EXPECT_EQ(expected.name, actual.name); |
@@ -119,6 +161,18 @@ void CheckEqualPasswordFormFillData(const PasswordFormFillData& expected, |
actual.is_possible_change_password_form); |
} |
+void CheckEqualPasswordFormGenerationData( |
+ const PasswordFormGenerationData& expected, |
+ const PasswordFormGenerationData& actual) { |
+ EXPECT_EQ(expected.name, actual.name); |
+ EXPECT_EQ(expected.action, actual.action); |
+ EXPECT_TRUE(expected.generation_field.SameFieldAs(actual.generation_field)); |
+ EXPECT_EQ(expected.generation_field.option_values, |
+ actual.generation_field.option_values); |
+ EXPECT_EQ(expected.generation_field.option_contents, |
+ actual.generation_field.option_contents); |
+} |
+ |
} // namespace |
class AutofillTypeTraitsTestImpl : public testing::Test, |
@@ -159,6 +213,17 @@ class AutofillTypeTraitsTestImpl : public testing::Test, |
callback.Run(s); |
} |
+ void PassPasswordFormGenerationData( |
+ const PasswordFormGenerationData& s, |
+ const PassPasswordFormGenerationDataCallback& callback) override { |
+ callback.Run(s); |
+ } |
+ |
+ void PassPasswordForm(const PasswordForm& s, |
+ const PassPasswordFormCallback& callback) override { |
+ callback.Run(s); |
+ } |
+ |
private: |
base::MessageLoop loop_; |
@@ -202,6 +267,21 @@ void ExpectPasswordFormFillData(const PasswordFormFillData& expected, |
closure.Run(); |
} |
+void ExpectPasswordFormGenerationData( |
+ const PasswordFormGenerationData& expected, |
+ const base::Closure& closure, |
+ const PasswordFormGenerationData& passed) { |
+ CheckEqualPasswordFormGenerationData(expected, passed); |
+ closure.Run(); |
+} |
+ |
+void ExpectPasswordForm(const PasswordForm& expected, |
+ const base::Closure& closure, |
+ const PasswordForm& passed) { |
+ EXPECT_EQ(expected, passed); |
+ closure.Run(); |
+} |
+ |
TEST_F(AutofillTypeTraitsTestImpl, PassFormFieldData) { |
FormFieldData input; |
test::CreateTestSelectField("TestLabel", "TestName", "TestValue", kOptions, |
@@ -269,4 +349,28 @@ TEST_F(AutofillTypeTraitsTestImpl, PassPasswordFormFillData) { |
loop.Run(); |
} |
+TEST_F(AutofillTypeTraitsTestImpl, PassPasswordFormGenerationData) { |
+ FormData form; |
+ test::CreateTestAddressFormData(&form); |
+ PasswordFormGenerationData input{form.name, form.action, form.fields[0]}; |
+ |
+ base::RunLoop loop; |
+ mojom::TypeTraitsTestPtr proxy = GetTypeTraitsTestProxy(); |
+ proxy->PassPasswordFormGenerationData( |
+ input, |
+ base::Bind(&ExpectPasswordFormGenerationData, input, loop.QuitClosure())); |
+ loop.Run(); |
+} |
+ |
+TEST_F(AutofillTypeTraitsTestImpl, PassPasswordForm) { |
+ PasswordForm input; |
+ CreateTestPasswordForm(&input); |
+ |
+ base::RunLoop loop; |
+ mojom::TypeTraitsTestPtr proxy = GetTypeTraitsTestProxy(); |
+ proxy->PassPasswordForm( |
+ input, base::Bind(&ExpectPasswordForm, input, loop.QuitClosure())); |
+ loop.Run(); |
+} |
+ |
} // namespace autofill |