summaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-04 09:14:52 +0000
committerisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-04 09:14:52 +0000
commit8ade4e99acacae9d5dd242547fe20503899b002d (patch)
treec1dc9a5d3be60e5aee5583cf6309d4426e9ccbb6 /components
parent8c958aa4f921f14d7571d6c9dced491b9efcf2dd (diff)
downloadchromium_src-8ade4e99acacae9d5dd242547fe20503899b002d.zip
chromium_src-8ade4e99acacae9d5dd242547fe20503899b002d.tar.gz
chromium_src-8ade4e99acacae9d5dd242547fe20503899b002d.tar.bz2
[Autofill] Update WalletClient tests to verify metric logging.
BUG=165570 Review URL: https://chromiumcodereview.appspot.com/13512002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192256 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components')
-rw-r--r--components/autofill/browser/wallet/wallet_client_unittest.cc175
1 files changed, 170 insertions, 5 deletions
diff --git a/components/autofill/browser/wallet/wallet_client_unittest.cc b/components/autofill/browser/wallet/wallet_client_unittest.cc
index 43df00f..27d1a2d 100644
--- a/components/autofill/browser/wallet/wallet_client_unittest.cc
+++ b/components/autofill/browser/wallet/wallet_client_unittest.cc
@@ -590,11 +590,25 @@ class MockAutofillMetrics : public AutofillMetrics {
MOCK_CONST_METHOD2(LogWalletApiCallDuration,
void(WalletApiCallMetric metric,
const base::TimeDelta& duration));
-
+ MOCK_CONST_METHOD2(LogWalletErrorMetric,
+ void(DialogType dialog_type, WalletErrorMetric metric));
+ MOCK_CONST_METHOD2(LogWalletRequiredActionMetric,
+ void(DialogType dialog_type,
+ WalletRequiredActionMetric action));
private:
DISALLOW_COPY_AND_ASSIGN(MockAutofillMetrics);
};
+enum EscrowRequestPresence {
+ HAS_ESCROW_REQUEST,
+ NO_ESCROW_REQUEST,
+};
+
+enum WalletRequestPresence {
+ HAS_WALLET_REQUEST,
+ NO_WALLET_REQUEST,
+};
+
class MockWalletClientDelegate : public WalletClientDelegate {
public:
MockWalletClientDelegate()
@@ -620,6 +634,48 @@ class MockWalletClientDelegate : public WalletClientDelegate {
LogWalletApiCallDuration(metric, testing::_)).Times(times);
}
+ void ExpectWalletErrorMetric(AutofillMetrics::WalletErrorMetric metric) {
+ EXPECT_CALL(
+ metric_logger_,
+ LogWalletErrorMetric(
+ DIALOG_TYPE_REQUEST_AUTOCOMPLETE, metric)).Times(1);
+ }
+
+ void ExpectWalletRequiredActionMetric(
+ AutofillMetrics::WalletRequiredActionMetric metric) {
+ EXPECT_CALL(
+ metric_logger_,
+ LogWalletRequiredActionMetric(
+ DIALOG_TYPE_REQUEST_AUTOCOMPLETE, metric)).Times(1);
+ }
+
+ void ExpectBaselineMetrics(EscrowRequestPresence escrow_request_presence,
+ WalletRequestPresence wallet_request_presence) {
+ int num_requests = 0;
+ if (escrow_request_presence == HAS_ESCROW_REQUEST)
+ ++num_requests;
+ if (wallet_request_presence == HAS_WALLET_REQUEST)
+ ++num_requests;
+
+ EXPECT_GT(num_requests, 0);
+
+ EXPECT_CALL(
+ metric_logger_,
+ LogWalletErrorMetric(
+ DIALOG_TYPE_REQUEST_AUTOCOMPLETE,
+ AutofillMetrics::WALLET_ERROR_BASELINE_ISSUED_REQUEST))
+ .Times(num_requests);
+
+ if (wallet_request_presence == HAS_WALLET_REQUEST) {
+ ExpectWalletRequiredActionMetric(
+ AutofillMetrics::WALLET_REQUIRED_ACTION_BASELINE_ISSUED_REQUEST);
+ }
+ }
+
+ MockAutofillMetrics* metric_logger() {
+ return &metric_logger_;
+ }
+
MOCK_METHOD0(OnDidAcceptLegalDocuments, void());
MOCK_METHOD1(OnDidAuthenticateInstrument, void(bool success));
MOCK_METHOD2(OnDidSaveAddress,
@@ -658,7 +714,7 @@ class MockWalletClientDelegate : public WalletClientDelegate {
size_t full_wallets_received_;
size_t wallet_items_received_;
- MockAutofillMetrics metric_logger_;
+ testing::StrictMock<MockAutofillMetrics> metric_logger_;
};
} // namespace
@@ -721,6 +777,9 @@ TEST_F(WalletClientTest, WalletError) {
EXPECT_CALL(delegate_, OnWalletError(
WalletClient::SERVICE_UNAVAILABLE)).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SEND_STATUS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(
+ AutofillMetrics::WALLET_SERVICE_UNAVAILABLE);
wallet_client_->SendAutocheckoutStatus(autofill::SUCCESS,
GURL(kMerchantUrl),
@@ -734,6 +793,8 @@ TEST_F(WalletClientTest, WalletErrorResponseMissing) {
EXPECT_CALL(delegate_, OnWalletError(
WalletClient::UNKNOWN_ERROR)).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SEND_STATUS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_UNKNOWN_ERROR);
wallet_client_->SendAutocheckoutStatus(autofill::SUCCESS,
GURL(kMerchantUrl),
@@ -746,6 +807,8 @@ TEST_F(WalletClientTest, WalletErrorResponseMissing) {
TEST_F(WalletClientTest, NetworkFailureOnExpectedVoidResponse) {
EXPECT_CALL(delegate_, OnNetworkError(net::HTTP_UNAUTHORIZED)).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SEND_STATUS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_NETWORK_ERROR);
wallet_client_->SendAutocheckoutStatus(autofill::SUCCESS,
GURL(kMerchantUrl),
@@ -760,6 +823,8 @@ TEST_F(WalletClientTest, NetworkFailureOnExpectedResponse) {
EXPECT_CALL(delegate_, OnNetworkError(net::HTTP_UNAUTHORIZED)).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_WALLET_ITEMS,
1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_NETWORK_ERROR);
wallet_client_->GetWalletItems(GURL(kMerchantUrl),
std::vector<WalletClient::RiskCapability>());
@@ -772,6 +837,8 @@ TEST_F(WalletClientTest, NetworkFailureOnExpectedResponse) {
TEST_F(WalletClientTest, RequestError) {
EXPECT_CALL(delegate_, OnWalletError(WalletClient::BAD_REQUEST)).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SEND_STATUS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_BAD_REQUEST);
wallet_client_->SendAutocheckoutStatus(autofill::SUCCESS,
GURL(kMerchantUrl),
@@ -784,6 +851,7 @@ TEST_F(WalletClientTest, RequestError) {
TEST_F(WalletClientTest, GetFullWalletSuccess) {
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_FULL_WALLET, 1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
Cart cart("total_price", "currency_code");
WalletClient::FullWalletRequest full_wallet_request(
@@ -810,6 +878,7 @@ TEST_F(WalletClientTest, GetFullWalletSuccess) {
TEST_F(WalletClientTest, GetFullWalletWithRiskCapabilitesSuccess) {
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_FULL_WALLET, 1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
std::vector<WalletClient::RiskCapability> risk_capabilities;
risk_capabilities.push_back(WalletClient::VERIFY_CVC);
@@ -840,6 +909,8 @@ TEST_F(WalletClientTest, GetFullWalletEncryptionDown) {
EXPECT_CALL(delegate_,
OnNetworkError(net::HTTP_INTERNAL_SERVER_ERROR)).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_FULL_WALLET, 0);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, NO_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_NETWORK_ERROR);
Cart cart("total_price", "currency_code");
WalletClient::FullWalletRequest full_wallet_request(
@@ -863,6 +934,8 @@ TEST_F(WalletClientTest, GetFullWalletEncryptionDown) {
TEST_F(WalletClientTest, GetFullWalletEncryptionMalformed) {
EXPECT_CALL(delegate_, OnMalformedResponse()).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_FULL_WALLET, 0);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, NO_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
Cart cart("total_price", "currency_code");
WalletClient::FullWalletRequest full_wallet_request(
@@ -887,6 +960,8 @@ TEST_F(WalletClientTest, GetFullWalletEncryptionMalformed) {
TEST_F(WalletClientTest, GetFullWalletMalformedResponse) {
EXPECT_CALL(delegate_, OnMalformedResponse()).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_FULL_WALLET, 1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
Cart cart("total_price", "currency_code");
WalletClient::FullWalletRequest full_wallet_request(
@@ -916,6 +991,7 @@ TEST_F(WalletClientTest, AcceptLegalDocuments) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::ACCEPT_LEGAL_DOCUMENTS,
1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
ScopedVector<WalletItems::LegalDocument> docs;
base::DictionaryValue document;
@@ -945,6 +1021,7 @@ TEST_F(WalletClientTest, AuthenticateInstrumentSucceeded) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::AUTHENTICATE_INSTRUMENT,
1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
wallet_client_->AuthenticateInstrument("instrument_id",
"cvv",
@@ -966,6 +1043,7 @@ TEST_F(WalletClientTest, AuthenticateInstrumentFailed) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::AUTHENTICATE_INSTRUMENT,
1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
wallet_client_->AuthenticateInstrument("instrument_id",
"cvv",
@@ -988,6 +1066,8 @@ TEST_F(WalletClientTest, AuthenticateInstrumentEscrowDown) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::AUTHENTICATE_INSTRUMENT,
0);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, NO_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_NETWORK_ERROR);
wallet_client_->AuthenticateInstrument("instrument_id",
"cvv",
@@ -1004,6 +1084,8 @@ TEST_F(WalletClientTest, AuthenticateInstrumentEscrowMalformed) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::AUTHENTICATE_INSTRUMENT,
0);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, NO_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
wallet_client_->AuthenticateInstrument("instrument_id",
"cvv",
@@ -1020,6 +1102,8 @@ TEST_F(WalletClientTest, AuthenticateInstrumentFailedMalformedResponse) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::AUTHENTICATE_INSTRUMENT,
1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
wallet_client_->AuthenticateInstrument("instrument_id",
"cvv",
@@ -1041,6 +1125,7 @@ TEST_F(WalletClientTest, AuthenticateInstrumentFailedMalformedResponse) {
TEST_F(WalletClientTest, GetWalletItems) {
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_WALLET_ITEMS,
1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
wallet_client_->GetWalletItems(GURL(kMerchantUrl),
std::vector<WalletClient::RiskCapability>());
@@ -1054,6 +1139,7 @@ TEST_F(WalletClientTest, GetWalletItems) {
TEST_F(WalletClientTest, GetWalletItemsWithRiskCapabilites) {
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_WALLET_ITEMS,
1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
std::vector<WalletClient::RiskCapability> risk_capabilities;
risk_capabilities.push_back(WalletClient::RELOGIN);
@@ -1072,6 +1158,7 @@ TEST_F(WalletClientTest, SaveAddressSucceeded) {
OnDidSaveAddress("saved_address_id",
std::vector<RequiredAction>())).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SAVE_ADDRESS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
scoped_ptr<Address> address = GetTestSaveableAddress();
wallet_client_->SaveAddress(*address, GURL(kMerchantUrl));
@@ -1082,6 +1169,11 @@ TEST_F(WalletClientTest, SaveAddressSucceeded) {
TEST_F(WalletClientTest, SaveAddressWithRequiredActionsSucceeded) {
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SAVE_ADDRESS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletRequiredActionMetric(
+ AutofillMetrics::REQUIRE_PHONE_NUMBER);
+ delegate_.ExpectWalletRequiredActionMetric(
+ AutofillMetrics::INVALID_FORM_FIELD);
std::vector<RequiredAction> required_actions;
required_actions.push_back(REQUIRE_PHONE_NUMBER);
@@ -1101,6 +1193,8 @@ TEST_F(WalletClientTest, SaveAddressWithRequiredActionsSucceeded) {
TEST_F(WalletClientTest, SaveAddressFailedInvalidRequiredAction) {
EXPECT_CALL(delegate_, OnMalformedResponse()).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SAVE_ADDRESS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
scoped_ptr<Address> address = GetTestSaveableAddress();
wallet_client_->SaveAddress(*address, GURL(kMerchantUrl));
@@ -1112,6 +1206,8 @@ TEST_F(WalletClientTest, SaveAddressFailedInvalidRequiredAction) {
TEST_F(WalletClientTest, SaveAddressFailedMalformedResponse) {
EXPECT_CALL(delegate_, OnMalformedResponse()).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SAVE_ADDRESS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
scoped_ptr<Address> address = GetTestSaveableAddress();
wallet_client_->SaveAddress(*address, GURL(kMerchantUrl));
@@ -1125,6 +1221,7 @@ TEST_F(WalletClientTest, SaveInstrumentSucceeded) {
OnDidSaveInstrument("instrument_id",
std::vector<RequiredAction>())).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SAVE_INSTRUMENT, 1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
scoped_ptr<Instrument> instrument = GetTestInstrument();
wallet_client_->SaveInstrument(*instrument,
@@ -1144,6 +1241,11 @@ TEST_F(WalletClientTest, SaveInstrumentSucceeded) {
TEST_F(WalletClientTest, SaveInstrumentWithRequiredActionsSucceeded) {
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SAVE_INSTRUMENT, 1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletRequiredActionMetric(
+ AutofillMetrics::REQUIRE_PHONE_NUMBER);
+ delegate_.ExpectWalletRequiredActionMetric(
+ AutofillMetrics::INVALID_FORM_FIELD);
std::vector<RequiredAction> required_actions;
required_actions.push_back(REQUIRE_PHONE_NUMBER);
@@ -1171,6 +1273,8 @@ TEST_F(WalletClientTest, SaveInstrumentWithRequiredActionsSucceeded) {
TEST_F(WalletClientTest, SaveInstrumentFailedInvalidRequiredActions) {
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SAVE_INSTRUMENT, 1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
EXPECT_CALL(delegate_, OnMalformedResponse());
@@ -1194,6 +1298,8 @@ TEST_F(WalletClientTest, SaveInstrumentEscrowDown) {
EXPECT_CALL(delegate_,
OnNetworkError(net::HTTP_INTERNAL_SERVER_ERROR)).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SAVE_INSTRUMENT, 0);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, NO_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_NETWORK_ERROR);
scoped_ptr<Instrument> instrument = GetTestInstrument();
wallet_client_->SaveInstrument(*instrument,
@@ -1210,6 +1316,8 @@ TEST_F(WalletClientTest, SaveInstrumentEscrowDown) {
TEST_F(WalletClientTest, SaveInstrumentEscrowMalformed) {
EXPECT_CALL(delegate_, OnMalformedResponse()).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SAVE_INSTRUMENT, 0);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, NO_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
scoped_ptr<Instrument> instrument = GetTestInstrument();
wallet_client_->SaveInstrument(*instrument,
@@ -1226,6 +1334,8 @@ TEST_F(WalletClientTest, SaveInstrumentEscrowMalformed) {
TEST_F(WalletClientTest, SaveInstrumentFailedMalformedResponse) {
EXPECT_CALL(delegate_, OnMalformedResponse()).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SAVE_INSTRUMENT, 1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
scoped_ptr<Instrument> instrument = GetTestInstrument();
wallet_client_->SaveInstrument(*instrument,
@@ -1252,6 +1362,7 @@ TEST_F(WalletClientTest, SaveInstrumentAndAddressSucceeded) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::SAVE_INSTRUMENT_AND_ADDRESS,
1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
scoped_ptr<Instrument> instrument = GetTestInstrument();
scoped_ptr<Address> address = GetTestSaveableAddress();
@@ -1274,6 +1385,11 @@ TEST_F(WalletClientTest, SaveInstrumentAndAddressWithRequiredActionsSucceeded) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::SAVE_INSTRUMENT_AND_ADDRESS,
1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletRequiredActionMetric(
+ AutofillMetrics::REQUIRE_PHONE_NUMBER);
+ delegate_.ExpectWalletRequiredActionMetric(
+ AutofillMetrics::INVALID_FORM_FIELD);
std::vector<RequiredAction> required_actions;
required_actions.push_back(REQUIRE_PHONE_NUMBER);
@@ -1308,6 +1424,8 @@ TEST_F(WalletClientTest, SaveInstrumentAndAddressFailedInvalidRequiredAction) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::SAVE_INSTRUMENT_AND_ADDRESS,
1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
scoped_ptr<Instrument> instrument = GetTestInstrument();
scoped_ptr<Address> address = GetTestSaveableAddress();
@@ -1333,6 +1451,8 @@ TEST_F(WalletClientTest, SaveInstrumentAndAddressEscrowDown) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::SAVE_INSTRUMENT_AND_ADDRESS,
0);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, NO_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_NETWORK_ERROR);
scoped_ptr<Instrument> instrument = GetTestInstrument();
scoped_ptr<Address> address = GetTestSaveableAddress();
@@ -1353,6 +1473,8 @@ TEST_F(WalletClientTest, SaveInstrumentAndAddressEscrowMalformed) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::SAVE_INSTRUMENT_AND_ADDRESS,
0);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, NO_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
scoped_ptr<Instrument> instrument = GetTestInstrument();
scoped_ptr<Address> address = GetTestSaveableAddress();
@@ -1373,6 +1495,8 @@ TEST_F(WalletClientTest, SaveInstrumentAndAddressFailedAddressMissing) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::SAVE_INSTRUMENT_AND_ADDRESS,
1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
scoped_ptr<Instrument> instrument = GetTestInstrument();
scoped_ptr<Address> address = GetTestSaveableAddress();
@@ -1397,6 +1521,8 @@ TEST_F(WalletClientTest, SaveInstrumentAndAddressFailedInstrumentMissing) {
delegate_.ExpectLogWalletApiCallDuration(
AutofillMetrics::SAVE_INSTRUMENT_AND_ADDRESS,
1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
scoped_ptr<Instrument> instrument = GetTestInstrument();
scoped_ptr<Address> address = GetTestSaveableAddress();
@@ -1421,6 +1547,7 @@ TEST_F(WalletClientTest, UpdateAddressSucceeded) {
OnDidUpdateAddress("shipping_address_id",
std::vector<RequiredAction>())).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::UPDATE_ADDRESS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
scoped_ptr<Address> address = GetTestShippingAddress();
address->set_object_id("shipping_address_id");
@@ -1433,6 +1560,11 @@ TEST_F(WalletClientTest, UpdateAddressSucceeded) {
TEST_F(WalletClientTest, UpdateAddressWithRequiredActionsSucceeded) {
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::UPDATE_ADDRESS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletRequiredActionMetric(
+ AutofillMetrics::REQUIRE_PHONE_NUMBER);
+ delegate_.ExpectWalletRequiredActionMetric(
+ AutofillMetrics::INVALID_FORM_FIELD);
std::vector<RequiredAction> required_actions;
required_actions.push_back(REQUIRE_PHONE_NUMBER);
@@ -1453,6 +1585,8 @@ TEST_F(WalletClientTest, UpdateAddressWithRequiredActionsSucceeded) {
TEST_F(WalletClientTest, UpdateAddressFailedInvalidRequiredAction) {
EXPECT_CALL(delegate_, OnMalformedResponse()).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::UPDATE_ADDRESS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
scoped_ptr<Address> address = GetTestShippingAddress();
address->set_object_id("shipping_address_id");
@@ -1466,6 +1600,8 @@ TEST_F(WalletClientTest, UpdateAddressFailedInvalidRequiredAction) {
TEST_F(WalletClientTest, UpdateAddressMalformedResponse) {
EXPECT_CALL(delegate_, OnMalformedResponse()).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::UPDATE_ADDRESS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
scoped_ptr<Address> address = GetTestShippingAddress();
address->set_object_id("shipping_address_id");
@@ -1482,6 +1618,7 @@ TEST_F(WalletClientTest, UpdateInstrumentAddressSucceeded) {
std::vector<RequiredAction>())).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::UPDATE_INSTRUMENT,
1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
WalletClient::UpdateInstrumentRequest update_instrument_request(
"instrument_id",
@@ -1500,6 +1637,7 @@ TEST_F(WalletClientTest, UpdateInstrumentExpirationDateSuceeded) {
std::vector<RequiredAction>())).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::UPDATE_INSTRUMENT,
1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
WalletClient::UpdateInstrumentRequest update_instrument_request(
"instrument_id",
@@ -1529,6 +1667,7 @@ TEST_F(WalletClientTest, UpdateInstrumentAddressWithNameChangeSucceeded) {
std::vector<RequiredAction>())).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::UPDATE_INSTRUMENT,
1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
WalletClient::UpdateInstrumentRequest update_instrument_request(
"instrument_id",
@@ -1556,6 +1695,7 @@ TEST_F(WalletClientTest, UpdateInstrumentAddressAndExpirationDateSucceeded) {
std::vector<RequiredAction>())).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::UPDATE_INSTRUMENT,
1);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, HAS_WALLET_REQUEST);
WalletClient::UpdateInstrumentRequest update_instrument_request(
"instrument_id",
@@ -1581,6 +1721,11 @@ TEST_F(WalletClientTest, UpdateInstrumentAddressAndExpirationDateSucceeded) {
TEST_F(WalletClientTest, UpdateInstrumentWithRequiredActionsSucceeded) {
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::UPDATE_INSTRUMENT,
1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletRequiredActionMetric(
+ AutofillMetrics::REQUIRE_PHONE_NUMBER);
+ delegate_.ExpectWalletRequiredActionMetric(
+ AutofillMetrics::INVALID_FORM_FIELD);
std::vector<RequiredAction> required_actions;
required_actions.push_back(REQUIRE_PHONE_NUMBER);
@@ -1605,6 +1750,8 @@ TEST_F(WalletClientTest, UpdateInstrumentFailedInvalidRequiredAction) {
EXPECT_CALL(delegate_, OnMalformedResponse()).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::UPDATE_INSTRUMENT,
1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
WalletClient::UpdateInstrumentRequest update_instrument_request(
"instrument_id",
@@ -1622,6 +1769,8 @@ TEST_F(WalletClientTest, UpdateInstrumentEscrowFailed) {
OnNetworkError(net::HTTP_INTERNAL_SERVER_ERROR)).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::UPDATE_INSTRUMENT,
0);
+ delegate_.ExpectBaselineMetrics(HAS_ESCROW_REQUEST, NO_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_NETWORK_ERROR);
WalletClient::UpdateInstrumentRequest update_instrument_request(
"instrument_id",
@@ -1643,6 +1792,8 @@ TEST_F(WalletClientTest, UpdateInstrumentMalformedResponse) {
EXPECT_CALL(delegate_, OnMalformedResponse()).Times(1);
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::UPDATE_INSTRUMENT,
1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
+ delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_MALFORMED_RESPONSE);
WalletClient::UpdateInstrumentRequest update_instrument_request(
"instrument_id",
@@ -1657,6 +1808,7 @@ TEST_F(WalletClientTest, UpdateInstrumentMalformedResponse) {
TEST_F(WalletClientTest, SendAutocheckoutOfStatusSuccess) {
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SEND_STATUS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
wallet_client_->SendAutocheckoutStatus(autofill::SUCCESS,
GURL(kMerchantUrl),
@@ -1668,6 +1820,7 @@ TEST_F(WalletClientTest, SendAutocheckoutOfStatusSuccess) {
TEST_F(WalletClientTest, SendAutocheckoutStatusOfFailure) {
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::SEND_STATUS, 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
wallet_client_->SendAutocheckoutStatus(autofill::CANNOT_PROCEED,
GURL(kMerchantUrl),
@@ -1681,6 +1834,7 @@ TEST_F(WalletClientTest, HasRequestInProgress) {
EXPECT_FALSE(wallet_client_->HasRequestInProgress());
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_WALLET_ITEMS,
1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
wallet_client_->GetWalletItems(GURL(kMerchantUrl),
std::vector<WalletClient::RiskCapability>());
@@ -1693,26 +1847,36 @@ TEST_F(WalletClientTest, HasRequestInProgress) {
}
TEST_F(WalletClientTest, PendingRequest) {
- ASSERT_EQ(0U, wallet_client_->pending_requests_.size());
- delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_WALLET_ITEMS,
- 2);
+ EXPECT_EQ(0U, wallet_client_->pending_requests_.size());
std::vector<WalletClient::RiskCapability> risk_capabilities;
// Shouldn't queue the first request.
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
wallet_client_->GetWalletItems(GURL(kMerchantUrl), risk_capabilities);
EXPECT_EQ(0U, wallet_client_->pending_requests_.size());
+ testing::Mock::VerifyAndClear(delegate_.metric_logger());
wallet_client_->GetWalletItems(GURL(kMerchantUrl), risk_capabilities);
EXPECT_EQ(1U, wallet_client_->pending_requests_.size());
+ delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_WALLET_ITEMS,
+ 1);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
VerifyAndFinishRequest(net::HTTP_OK,
kGetWalletItemsValidRequest,
kGetWalletItemsValidResponse);
EXPECT_EQ(0U, wallet_client_->pending_requests_.size());
+ testing::Mock::VerifyAndClear(delegate_.metric_logger());
EXPECT_CALL(delegate_, OnWalletError(
WalletClient::SERVICE_UNAVAILABLE)).Times(1);
+ delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_WALLET_ITEMS,
+ 1);
+ delegate_.ExpectWalletErrorMetric(
+ AutofillMetrics::WALLET_SERVICE_UNAVAILABLE);
+
+ // Finish the second request.
VerifyAndFinishRequest(net::HTTP_INTERNAL_SERVER_ERROR,
kGetWalletItemsValidRequest,
kErrorResponse);
@@ -1722,6 +1886,7 @@ TEST_F(WalletClientTest, CancelRequests) {
ASSERT_EQ(0U, wallet_client_->pending_requests_.size());
delegate_.ExpectLogWalletApiCallDuration(AutofillMetrics::GET_WALLET_ITEMS,
0);
+ delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
std::vector<WalletClient::RiskCapability> risk_capabilities;