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

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

Issue 2055633003: [Password Generation] Sends form classifier vote to autofill server (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@pg_form_classification
Patch Set: replaced " DCHECK(client_->IsSavingAndFillingEnabledForCurrentPage()) Created 4 years, 6 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 f2329995b2fa4a0818f17d8d222be4840236c0dc..7da6df8b3ae891e09f790ad771dc450a6759ad6b 100644
--- a/components/password_manager/core/browser/password_form_manager_unittest.cc
+++ b/components/password_manager/core/browser/password_form_manager_unittest.cc
@@ -144,6 +144,23 @@ MATCHER_P2(CheckUploadedGenerationTypesAndSignature,
return true;
}
+MATCHER_P2(CheckUploadedFormClassifierVote,
+ found_generation_element,
+ generation_element,
+ "Wrong form classifier votes") {
+ for (const autofill::AutofillField* field : arg) {
+ if (found_generation_element && field->name == generation_element) {
+ EXPECT_EQ(field->form_classifier_outcome(),
+ autofill::AutofillUploadContents::Field::GENERATION_ELEMENT);
+ } else {
+ EXPECT_EQ(
+ field->form_classifier_outcome(),
+ autofill::AutofillUploadContents::Field::NON_GENERATION_ELEMENT);
+ }
+ }
+ return true;
+}
+
void ClearVector(ScopedVector<PasswordForm>* results) {
results->clear();
}
@@ -2957,6 +2974,46 @@ TEST_F(PasswordFormManagerTest, GeneratedVoteUpload) {
GeneratedVoteUploadTest(true, true, false);
}
+TEST_F(PasswordFormManagerTest, FormClassifierVoteUpload) {
+ const bool kFalseTrue[] = {false, true};
+ for (bool found_generation_element : kFalseTrue) {
+ SCOPED_TRACE(testing::Message() << "found_generation_element="
+ << found_generation_element);
+ 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, false);
+ base::string16 generation_element = form.password_element;
+ if (found_generation_element)
+ form_manager.SaveGenerationFieldDetectedByClassifier(generation_element);
+ else
+ form_manager.SaveGenerationFieldDetectedByClassifier(base::string16());
+
+ ScopedVector<PasswordForm> result;
+ form_manager.SimulateFetchMatchingLoginsFromPasswordStore();
+ form_manager.OnGetPasswordStoreResults(std::move(result));
+
+ autofill::FormStructure form_structure(submitted_form.form_data);
+
+ EXPECT_CALL(
+ *client()->mock_driver()->mock_autofill_download_manager(),
+ StartUploadRequest(CheckUploadedFormClassifierVote(
+ found_generation_element, generation_element),
+ 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