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

Unified Diff: components/password_manager/core/browser/password_form_manager_unittest.cc

Issue 2148303005: [Password Generation] Sends the flag whether a field has nonempty user input (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed a typo Created 4 years, 5 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: components/password_manager/core/browser/password_form_manager_unittest.cc
diff --git a/components/password_manager/core/browser/password_form_manager_unittest.cc b/components/password_manager/core/browser/password_form_manager_unittest.cc
index 03d149f2bae81e5e164b2ca73e9656975f6a978b..b294ad38ca682431fa2fede85b230a75e3c20295 100644
--- a/components/password_manager/core/browser/password_form_manager_unittest.cc
+++ b/components/password_manager/core/browser/password_form_manager_unittest.cc
@@ -43,6 +43,8 @@
#include "url/gurl.h"
#include "url/origin.h"
+using autofill::FieldPropertiesFlags;
+using autofill::FieldPropertiesMask;
using autofill::PasswordForm;
using base::ASCIIToUTF16;
using ::testing::_;
@@ -200,6 +202,25 @@ MATCHER_P2(CheckUploadedFormClassifierVote,
return true;
}
+MATCHER_P(CheckFieldPropertiesMasksUpload,
+ expected_field_properties,
+ "Wrong field properties flags") {
+ for (const autofill::AutofillField* field : arg) {
+ autofill::FieldPropertiesMask expected_mask =
+ expected_field_properties.find(field->name) !=
+ expected_field_properties.end()
+ ? FieldPropertiesFlags::USER_TYPED
+ : 0;
+ if (field->properties_mask != expected_mask) {
+ ADD_FAILURE() << "Wrong field properties flags for field " << field->name
+ << ": expected mask " << expected_mask << ", but found "
+ << field->properties_mask;
+ return false;
+ }
+ }
+ return true;
+}
+
void ClearVector(ScopedVector<PasswordForm>* results) {
results->clear();
}
@@ -2858,6 +2879,44 @@ TEST_F(PasswordFormManagerTest, FormClassifierVoteUpload) {
}
}
+TEST_F(PasswordFormManagerTest, FieldPropertiesMasksUpload) {
+ PasswordForm form(*observed_form());
+ form.form_data = saved_match()->form_data;
+
+ // Create submitted form.
+ PasswordForm submitted_form(form);
+ submitted_form.preferred = true;
+ submitted_form.username_value = saved_match()->username_value;
+ submitted_form.password_value = saved_match()->password_value;
+
+ PasswordFormManager form_manager(
+ password_manager(), client(), client()->driver(), form,
+ base::WrapUnique(new NiceMock<MockFormSaver>()));
+ ScopedVector<PasswordForm> result;
+ form_manager.SimulateFetchMatchingLoginsFromPasswordStore();
+ form_manager.OnGetPasswordStoreResults(std::move(result));
+
+ DCHECK_EQ(3U, form.form_data.fields.size());
+ submitted_form.form_data.fields[1].properties_mask =
+ FieldPropertiesFlags::USER_TYPED;
+ submitted_form.form_data.fields[2].properties_mask =
+ FieldPropertiesFlags::USER_TYPED;
+
+ std::map<base::string16, autofill::FieldPropertiesMask>
+ expected_field_properties;
+ for (const autofill::FormFieldData& field : submitted_form.form_data.fields)
+ if (field.properties_mask)
+ expected_field_properties[field.name] = field.properties_mask;
+
+ EXPECT_CALL(*client()->mock_driver()->mock_autofill_download_manager(),
+ StartUploadRequest(
+ CheckFieldPropertiesMasksUpload(expected_field_properties),
+ false, _, _, true));
+ form_manager.ProvisionallySave(
+ submitted_form, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
+ form_manager.Save();
+}
+
TEST_F(PasswordFormManagerTest, TestSavingAPIFormsWithSamePassword) {
// Turn |observed_form| and |saved_match| to API created forms.
observed_form()->username_element.clear();

Powered by Google App Engine
This is Rietveld 408576698