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

Unified Diff: components/autofill/core/browser/autofill_manager_unittest.cc

Issue 2894333002: Pass active_chrome_experiments in payments RPC. (Closed)
Patch Set: Adds feature to active_chrome_experiments only if feature was triggered. Created 3 years, 7 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/autofill/core/browser/autofill_manager_unittest.cc
diff --git a/components/autofill/core/browser/autofill_manager_unittest.cc b/components/autofill/core/browser/autofill_manager_unittest.cc
index 4421a1d4a9d84c34d13c7e662d5b5c8dbc4a9d67..ab4da523f352175454acf24bb1f7231767889c74 100644
--- a/components/autofill/core/browser/autofill_manager_unittest.cc
+++ b/components/autofill/core/browser/autofill_manager_unittest.cc
@@ -77,6 +77,7 @@ using testing::_;
using testing::AtLeast;
using testing::Return;
using testing::SaveArg;
+using testing::UnorderedElementsAre;
namespace autofill {
namespace {
@@ -117,7 +118,9 @@ class TestPaymentsClient : public payments::PaymentsClient {
~TestPaymentsClient() override {}
void GetUploadDetails(const std::vector<AutofillProfile>& addresses,
+ const std::vector<const char*>& active_experiments,
const std::string& app_locale) override {
+ active_experiments_ = active_experiments;
delegate_->OnDidGetUploadDetails(
app_locale == "en-US" ? AutofillClient::SUCCESS
: AutofillClient::PERMANENT_FAILURE,
@@ -127,10 +130,12 @@ class TestPaymentsClient : public payments::PaymentsClient {
void UploadCard(const payments::PaymentsClient::UploadRequestDetails&
request_details) override {
+ active_experiments_ = request_details.active_experiments;
delegate_->OnDidUploadCard(AutofillClient::SUCCESS, server_id_);
}
std::string server_id_;
+ std::vector<const char*> active_experiments_;
private:
payments::PaymentsClientDelegate* const delegate_;
@@ -559,12 +564,13 @@ class TestAutofillManager : public AutofillManager {
: AutofillManager(driver, client, personal_data),
personal_data_(personal_data),
context_getter_(driver->GetURLRequestContext()),
+ test_payments_client_(new TestPaymentsClient(context_getter_, this)),
autofill_enabled_(true),
credit_card_upload_enabled_(false),
credit_card_was_uploaded_(false),
expected_observed_submission_(true),
call_parent_upload_form_data_(false) {
- set_payments_client(new TestPaymentsClient(context_getter_, this));
+ set_payments_client(test_payments_client_);
}
~TestAutofillManager() override {}
@@ -675,6 +681,10 @@ class TestAutofillManager : public AutofillManager {
personal_data_->AddCreditCard(credit_card);
}
+ const std::vector<const char*>& GetActiveExperiments() const {
+ return test_payments_client_->active_experiments_;
+ }
+
int GetPackedCreditCardID(int credit_card_id) {
std::string credit_card_guid =
base::StringPrintf("00000000-0000-0000-0000-%012d", credit_card_id);
@@ -704,6 +714,7 @@ class TestAutofillManager : public AutofillManager {
TestPersonalDataManager* personal_data_; // Weak reference.
net::URLRequestContextGetter* context_getter_; // Weak reference.
+ TestPaymentsClient* test_payments_client_; // Weak reference.
bool autofill_enabled_;
bool credit_card_upload_enabled_;
bool credit_card_was_uploaded_;
@@ -1071,8 +1082,8 @@ class AutofillManagerTest : public testing::Test {
}
void EnableAutofillUpstreamRequestCvcIfMissingExperiment() {
- scoped_feature_list_.InitWithFeatures(
- {kAutofillUpstreamRequestCvcIfMissing}, {});
+ scoped_feature_list_.InitAndEnableFeature(
+ kAutofillUpstreamRequestCvcIfMissing);
}
void DisableAutofillUpstreamUseAutofillProfileComparatorForName() {
@@ -4668,6 +4679,9 @@ TEST_F(AutofillManagerTest, UploadCreditCard) {
EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
FormSubmitted(credit_card_form);
EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
+ EXPECT_THAT(autofill_manager_->GetActiveExperiments(),
+ UnorderedElementsAre(
+ kAutofillUpstreamUseAutofillProfileComparatorForName.name));
// Server did not send a server_id, expect copy of card is not stored.
EXPECT_TRUE(autofill_manager_->GetCreditCards().empty());
@@ -4685,6 +4699,43 @@ TEST_F(AutofillManagerTest, UploadCreditCard) {
"Autofill.DaysSincePreviousUseAtSubmission.Profile", 0);
}
+TEST_F(AutofillManagerTest, UploadCreditCard_RequestCVCEnabled_DoesNotTrigger) {
+ EnableAutofillUpstreamRequestCvcIfMissingExperiment();
+
+ personal_data_.ClearCreditCards();
+ personal_data_.ClearAutofillProfiles();
+ autofill_manager_->set_credit_card_upload_enabled(true);
+
+ // Create, fill and submit an address form in order to establish a recent
+ // profile which can be selected for the upload request.
+ FormData address_form;
+ test::CreateTestAddressFormData(&address_form);
+ FormsSeen({address_form});
+
+ ManuallyFillAddressForm("Flo", "Master", "77401", "US", &address_form);
+ FormSubmitted(address_form);
+
+ // Set up our credit card form data.
+ FormData credit_card_form;
+ CreateTestCreditCardFormData(&credit_card_form, true, false);
+ FormsSeen({credit_card_form});
+
+ // Edit the data, and submit.
+ credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
+ credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
+ credit_card_form.fields[2].value = ASCIIToUTF16("11");
+ credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[4].value = ASCIIToUTF16("123");
+
+ EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
+ FormSubmitted(credit_card_form);
+ EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
+ // Submitted form included CVC, so user did not need to enter CVC.
+ EXPECT_THAT(autofill_manager_->GetActiveExperiments(),
+ UnorderedElementsAre(
+ kAutofillUpstreamUseAutofillProfileComparatorForName.name));
+}
+
TEST_F(AutofillManagerTest, UploadCreditCardAndSaveCopy) {
personal_data_.ClearCreditCards();
personal_data_.ClearAutofillProfiles();
@@ -5211,6 +5262,10 @@ TEST_F(AutofillManagerTest,
EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
FormSubmitted(credit_card_form);
EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
+ EXPECT_THAT(autofill_manager_->GetActiveExperiments(),
+ UnorderedElementsAre(
+ kAutofillUpstreamUseAutofillProfileComparatorForName.name,
+ kAutofillUpstreamRequestCvcIfMissing.name));
// Verify that the correct histogram entries were logged.
ExpectCardUploadDecision(histogram_tester, AutofillMetrics::UPLOAD_OFFERED);
@@ -5428,6 +5483,10 @@ TEST_F(AutofillManagerTest,
EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
FormSubmitted(credit_card_form);
EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
+ EXPECT_THAT(autofill_manager_->GetActiveExperiments(),
+ UnorderedElementsAre(
+ kAutofillUpstreamUseAutofillProfileComparatorForName.name,
+ kAutofillUpstreamUseNotRecentlyUsedAutofillProfile.name));
// Verify that the correct histogram entry (and only that) was logged.
ExpectUniqueCardUploadDecision(histogram_tester,
@@ -5757,6 +5816,7 @@ TEST_F(AutofillManagerTest,
EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
FormSubmitted(credit_card_form);
EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
+ EXPECT_TRUE(autofill_manager_->GetActiveExperiments().empty());
// Verify that the correct histogram entry (and only that) was logged.
ExpectUniqueCardUploadDecision(histogram_tester,
@@ -6114,6 +6174,10 @@ TEST_F(AutofillManagerTest,
EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
FormSubmitted(credit_card_form);
EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
+ // Recently used profile was available, so did not need to use old profile.
+ EXPECT_THAT(autofill_manager_->GetActiveExperiments(),
+ UnorderedElementsAre(
+ kAutofillUpstreamUseAutofillProfileComparatorForName.name));
// Verify that the correct histogram entry (and only that) was logged.
ExpectUniqueCardUploadDecision(histogram_tester,
« no previous file with comments | « components/autofill/core/browser/autofill_manager.cc ('k') | components/autofill/core/browser/payments/payments_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698