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

Unified Diff: chrome/browser/autofill/wallet/wallet_client_unittest.cc

Issue 11773037: Implementation of sensitive card information escrowing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing unit test and changing escrow url Created 7 years, 11 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: 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);

Powered by Google App Engine
This is Rietveld 408576698