OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <utility> | 5 #include <utility> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/strings/string_piece.h" | 10 #include "base/strings/string_piece.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 public: | 27 public: |
28 PaymentsClientTest() : result_(AutofillClient::NONE) {} | 28 PaymentsClientTest() : result_(AutofillClient::NONE) {} |
29 ~PaymentsClientTest() override {} | 29 ~PaymentsClientTest() override {} |
30 | 30 |
31 void SetUp() override { | 31 void SetUp() override { |
32 // Silence the warning for mismatching sync and Payments servers. | 32 // Silence the warning for mismatching sync and Payments servers. |
33 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 33 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
34 switches::kWalletServiceUseSandbox, "0"); | 34 switches::kWalletServiceUseSandbox, "0"); |
35 | 35 |
36 result_ = AutofillClient::NONE; | 36 result_ = AutofillClient::NONE; |
| 37 server_id_.clear(); |
37 real_pan_.clear(); | 38 real_pan_.clear(); |
38 legal_message_.reset(); | 39 legal_message_.reset(); |
39 | 40 |
40 request_context_ = new net::TestURLRequestContextGetter( | 41 request_context_ = new net::TestURLRequestContextGetter( |
41 base::ThreadTaskRunnerHandle::Get()); | 42 base::ThreadTaskRunnerHandle::Get()); |
42 token_service_.reset(new FakeOAuth2TokenService()); | 43 token_service_.reset(new FakeOAuth2TokenService()); |
43 identity_provider_.reset(new FakeIdentityProvider(token_service_.get())); | 44 identity_provider_.reset(new FakeIdentityProvider(token_service_.get())); |
44 client_.reset(new PaymentsClient(request_context_.get(), this)); | 45 client_.reset(new PaymentsClient(request_context_.get(), this)); |
45 } | 46 } |
46 | 47 |
(...skipping 12 matching lines...) Expand all Loading... |
59 } | 60 } |
60 | 61 |
61 void OnDidGetUploadDetails( | 62 void OnDidGetUploadDetails( |
62 AutofillClient::PaymentsRpcResult result, | 63 AutofillClient::PaymentsRpcResult result, |
63 const base::string16& context_token, | 64 const base::string16& context_token, |
64 std::unique_ptr<base::DictionaryValue> legal_message) override { | 65 std::unique_ptr<base::DictionaryValue> legal_message) override { |
65 result_ = result; | 66 result_ = result; |
66 legal_message_ = std::move(legal_message); | 67 legal_message_ = std::move(legal_message); |
67 } | 68 } |
68 | 69 |
69 void OnDidUploadCard(AutofillClient::PaymentsRpcResult result) override { | 70 void OnDidUploadCard(AutofillClient::PaymentsRpcResult result, |
| 71 const std::string& server_id) override { |
70 result_ = result; | 72 result_ = result; |
| 73 server_id_ = server_id; |
71 } | 74 } |
72 | 75 |
73 protected: | 76 protected: |
74 void StartUnmasking() { | 77 void StartUnmasking() { |
75 token_service_->AddAccount("example@gmail.com"); | 78 token_service_->AddAccount("example@gmail.com"); |
76 identity_provider_->LogIn("example@gmail.com"); | 79 identity_provider_->LogIn("example@gmail.com"); |
77 PaymentsClient::UnmaskRequestDetails request_details; | 80 PaymentsClient::UnmaskRequestDetails request_details; |
78 request_details.card = test::GetMaskedServerCard(); | 81 request_details.card = test::GetMaskedServerCard(); |
79 request_details.user_response.cvc = base::ASCIIToUTF16("123"); | 82 request_details.user_response.cvc = base::ASCIIToUTF16("123"); |
80 request_details.risk_data = "some risk data"; | 83 request_details.risk_data = "some risk data"; |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 void ReturnResponse(net::HttpStatusCode response_code, | 126 void ReturnResponse(net::HttpStatusCode response_code, |
124 const std::string& response_body) { | 127 const std::string& response_body) { |
125 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 128 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
126 ASSERT_TRUE(fetcher); | 129 ASSERT_TRUE(fetcher); |
127 fetcher->set_response_code(response_code); | 130 fetcher->set_response_code(response_code); |
128 fetcher->SetResponseString(response_body); | 131 fetcher->SetResponseString(response_body); |
129 fetcher->delegate()->OnURLFetchComplete(fetcher); | 132 fetcher->delegate()->OnURLFetchComplete(fetcher); |
130 } | 133 } |
131 | 134 |
132 AutofillClient::PaymentsRpcResult result_; | 135 AutofillClient::PaymentsRpcResult result_; |
| 136 std::string server_id_; |
133 std::string real_pan_; | 137 std::string real_pan_; |
134 std::unique_ptr<base::DictionaryValue> legal_message_; | 138 std::unique_ptr<base::DictionaryValue> legal_message_; |
135 | 139 |
136 content::TestBrowserThreadBundle thread_bundle_; | 140 content::TestBrowserThreadBundle thread_bundle_; |
137 net::TestURLFetcherFactory factory_; | 141 net::TestURLFetcherFactory factory_; |
138 scoped_refptr<net::TestURLRequestContextGetter> request_context_; | 142 scoped_refptr<net::TestURLRequestContextGetter> request_context_; |
139 std::unique_ptr<FakeOAuth2TokenService> token_service_; | 143 std::unique_ptr<FakeOAuth2TokenService> token_service_; |
140 std::unique_ptr<FakeIdentityProvider> identity_provider_; | 144 std::unique_ptr<FakeIdentityProvider> identity_provider_; |
141 std::unique_ptr<PaymentsClient> client_; | 145 std::unique_ptr<PaymentsClient> client_; |
142 | 146 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 // upload data. | 224 // upload data. |
221 EXPECT_TRUE(GetUploadData().find(PaymentsClient::kPhoneNumber) == | 225 EXPECT_TRUE(GetUploadData().find(PaymentsClient::kPhoneNumber) == |
222 std::string::npos); | 226 std::string::npos); |
223 EXPECT_TRUE(GetUploadData().find("212") == std::string::npos); | 227 EXPECT_TRUE(GetUploadData().find("212") == std::string::npos); |
224 EXPECT_TRUE(GetUploadData().find("555") == std::string::npos); | 228 EXPECT_TRUE(GetUploadData().find("555") == std::string::npos); |
225 EXPECT_TRUE(GetUploadData().find("0162") == std::string::npos); | 229 EXPECT_TRUE(GetUploadData().find("0162") == std::string::npos); |
226 EXPECT_TRUE(GetUploadData().find("834") == std::string::npos); | 230 EXPECT_TRUE(GetUploadData().find("834") == std::string::npos); |
227 EXPECT_TRUE(GetUploadData().find("0090") == std::string::npos); | 231 EXPECT_TRUE(GetUploadData().find("0090") == std::string::npos); |
228 } | 232 } |
229 | 233 |
230 TEST_F(PaymentsClientTest, UploadSuccess) { | 234 TEST_F(PaymentsClientTest, UploadSuccessWithoutServerId) { |
231 StartUploading(); | 235 StartUploading(); |
232 IssueOAuthToken(); | 236 IssueOAuthToken(); |
233 ReturnResponse(net::HTTP_OK, "{}"); | 237 ReturnResponse(net::HTTP_OK, "{}"); |
234 EXPECT_EQ(AutofillClient::SUCCESS, result_); | 238 EXPECT_EQ(AutofillClient::SUCCESS, result_); |
| 239 EXPECT_TRUE(server_id_.empty()); |
| 240 } |
| 241 |
| 242 TEST_F(PaymentsClientTest, UploadSuccessWithServerId) { |
| 243 StartUploading(); |
| 244 IssueOAuthToken(); |
| 245 ReturnResponse(net::HTTP_OK, "{ \"credit_card_id\": \"InstrumentData:1\" }"); |
| 246 EXPECT_EQ(AutofillClient::SUCCESS, result_); |
| 247 EXPECT_EQ("InstrumentData:1", server_id_); |
235 } | 248 } |
236 | 249 |
237 TEST_F(PaymentsClientTest, UploadIncludesNonLocationData) { | 250 TEST_F(PaymentsClientTest, UploadIncludesNonLocationData) { |
238 StartUploading(); | 251 StartUploading(); |
239 | 252 |
240 // Verify that the recipient name field and test names do appear in the upload | 253 // Verify that the recipient name field and test names do appear in the upload |
241 // data. | 254 // data. |
242 EXPECT_TRUE(GetUploadData().find(PaymentsClient::kRecipientName) != | 255 EXPECT_TRUE(GetUploadData().find(PaymentsClient::kRecipientName) != |
243 std::string::npos); | 256 std::string::npos); |
244 EXPECT_TRUE(GetUploadData().find("John") != std::string::npos); | 257 EXPECT_TRUE(GetUploadData().find("John") != std::string::npos); |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 TEST_F(PaymentsClientTest, OtherError) { | 375 TEST_F(PaymentsClientTest, OtherError) { |
363 StartUnmasking(); | 376 StartUnmasking(); |
364 IssueOAuthToken(); | 377 IssueOAuthToken(); |
365 ReturnResponse(net::HTTP_FORBIDDEN, std::string()); | 378 ReturnResponse(net::HTTP_FORBIDDEN, std::string()); |
366 EXPECT_EQ(AutofillClient::PERMANENT_FAILURE, result_); | 379 EXPECT_EQ(AutofillClient::PERMANENT_FAILURE, result_); |
367 EXPECT_EQ("", real_pan_); | 380 EXPECT_EQ("", real_pan_); |
368 } | 381 } |
369 | 382 |
370 } // namespace autofill | 383 } // namespace autofill |
371 } // namespace payments | 384 } // namespace payments |
OLD | NEW |