Index: chrome/browser/autofill/wallet/wallet_client_unittest.cc |
diff --git a/chrome/browser/autofill/wallet/wallet_client_unittest.cc b/chrome/browser/autofill/wallet/wallet_client_unittest.cc |
index 0fbebd4032e7d6c3fc638b0e35ef2c8f91a02e3f..632d8423948bf28c6f7527b1b958032657925540 100644 |
--- a/chrome/browser/autofill/wallet/wallet_client_unittest.cc |
+++ b/chrome/browser/autofill/wallet/wallet_client_unittest.cc |
@@ -167,6 +167,9 @@ const char kSendExtendedAutofillStatusOfFailureValidRequest[] = |
"\"success\":false" |
"}"; |
+const char kEscrowSensitiveInformationRequest[] = |
+ "gid=obfuscated_gaia_id&cardNumber=pan&cvv=cvn"; |
+ |
} // anonymous namespace |
namespace wallet { |
@@ -202,6 +205,8 @@ class MockWalletClientObserver |
MOCK_METHOD0(OnAcceptLegalDocuments, void()); |
MOCK_METHOD2(OnEncryptOtp, void(const std::string& encrypted_otp, |
const std::string& session_material)); |
+ MOCK_METHOD1(OnEscrowSensitiveInformation, |
+ void(const std::string& escrow_handle)); |
MOCK_METHOD1(OnGetFullWallet, void(FullWallet* full_wallet)); |
MOCK_METHOD1(OnGetWalletItems, void(WalletItems* wallet_items)); |
MOCK_METHOD0(OnSendExtendedAutofillStatus, void()); |
@@ -289,9 +294,47 @@ TEST_F(WalletClientTest, RequestError) { |
} |
// TODO(ahutter): Add test for EncryptOtp. |
-// TODO(ahutter): Add retry and failure tests for EncryptOtp, GetWalletItems, |
+// TODO(ahutter): Add failure tests for EncryptOtp, GetWalletItems, |
// GetFullWallet for when data is missing or invalid. |
+TEST_F(WalletClientTest, EscrowSensitiveInformationSuccess) { |
+ MockWalletClientObserver observer; |
+ EXPECT_CALL(observer, OnEscrowSensitiveInformation("abc")).Times(1); |
+ |
+ net::TestURLFetcherFactory factory; |
+ |
+ WalletClient wallet_client(profile_.GetRequestContext()); |
+ wallet_client.EscrowSensitiveInformation("pan", |
+ "cvn", |
+ "obfuscated_gaia_id", |
+ &observer); |
+ net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
+ DCHECK(fetcher); |
Ilya Sherman
2013/01/09 23:30:48
Unit tests should not use DCHECKs, as they can cra
ahutter
2013/01/10 00:24:46
Done.
|
+ ASSERT_EQ(kEscrowSensitiveInformationRequest, fetcher->upload_data()); |
Ilya Sherman
2013/01/09 23:30:48
nit: I think Chrome code prefers EXPECT_EQ for thi
ahutter
2013/01/10 00:24:46
Done.
|
+ fetcher->set_response_code(net::HTTP_OK); |
+ fetcher->SetResponseString("abc"); |
+ fetcher->delegate()->OnURLFetchComplete(fetcher); |
+} |
+ |
+TEST_F(WalletClientTest, EscrowSensitiveInformationFailure) { |
+ MockWalletClientObserver observer; |
+ EXPECT_CALL(observer, OnWalletError()).Times(1); |
+ |
+ net::TestURLFetcherFactory factory; |
+ |
+ WalletClient wallet_client(profile_.GetRequestContext()); |
+ wallet_client.EscrowSensitiveInformation("pan", |
+ "cvn", |
+ "obfuscated_gaia_id", |
+ &observer); |
+ net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
+ DCHECK(fetcher); |
+ ASSERT_EQ(kEscrowSensitiveInformationRequest, fetcher->upload_data()); |
+ fetcher->set_response_code(net::HTTP_OK); |
+ fetcher->SetResponseString(""); |
+ fetcher->delegate()->OnURLFetchComplete(fetcher); |
+} |
+ |
TEST_F(WalletClientTest, GetFullWallet) { |
MockWalletClientObserver observer; |
EXPECT_CALL(observer, OnGetFullWallet(testing::NotNull())).Times(1); |