OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/logging.h" | 5 #include "base/logging.h" |
6 #include "base/string_number_conversions.h" | 6 #include "base/string_number_conversions.h" |
7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
8 #include "chrome/browser/autofill/wallet/cart.h" | 8 #include "chrome/browser/autofill/wallet/cart.h" |
9 #include "chrome/browser/autofill/wallet/full_wallet.h" | 9 #include "chrome/browser/autofill/wallet/full_wallet.h" |
10 #include "chrome/browser/autofill/wallet/wallet_client.h" | 10 #include "chrome/browser/autofill/wallet/wallet_client.h" |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 | 160 |
161 const char kSendExtendedAutofillStatusOfFailureValidRequest[] = | 161 const char kSendExtendedAutofillStatusOfFailureValidRequest[] = |
162 "{" | 162 "{" |
163 "\"api_key\":\"abcdefg\"," | 163 "\"api_key\":\"abcdefg\"," |
164 "\"google_transaction_id\":\"google_transaction_id\"," | 164 "\"google_transaction_id\":\"google_transaction_id\"," |
165 "\"hostname\":\"hostname\"," | 165 "\"hostname\":\"hostname\"," |
166 "\"reason\":\"CANNOT_PROCEED\"," | 166 "\"reason\":\"CANNOT_PROCEED\"," |
167 "\"success\":false" | 167 "\"success\":false" |
168 "}"; | 168 "}"; |
169 | 169 |
| 170 const char kEscrowSensitiveInformationRequest[] = |
| 171 "gid=obfuscated_gaia_id&cardNumber=pan&cvv=cvn"; |
| 172 |
170 } // anonymous namespace | 173 } // anonymous namespace |
171 | 174 |
172 namespace wallet { | 175 namespace wallet { |
173 | 176 |
174 class WalletClientTest : public testing::Test { | 177 class WalletClientTest : public testing::Test { |
175 public: | 178 public: |
176 WalletClientTest() : io_thread_(content::BrowserThread::IO) {} | 179 WalletClientTest() : io_thread_(content::BrowserThread::IO) {} |
177 | 180 |
178 virtual void SetUp() { | 181 virtual void SetUp() { |
179 io_thread_.StartIOThread(); | 182 io_thread_.StartIOThread(); |
(...skipping 15 matching lines...) Expand all Loading... |
195 | 198 |
196 class MockWalletClientObserver | 199 class MockWalletClientObserver |
197 : public wallet::WalletClient::WalletClientObserver { | 200 : public wallet::WalletClient::WalletClientObserver { |
198 public: | 201 public: |
199 MockWalletClientObserver() {} | 202 MockWalletClientObserver() {} |
200 ~MockWalletClientObserver() {} | 203 ~MockWalletClientObserver() {} |
201 | 204 |
202 MOCK_METHOD0(OnAcceptLegalDocuments, void()); | 205 MOCK_METHOD0(OnAcceptLegalDocuments, void()); |
203 MOCK_METHOD2(OnEncryptOtp, void(const std::string& encrypted_otp, | 206 MOCK_METHOD2(OnEncryptOtp, void(const std::string& encrypted_otp, |
204 const std::string& session_material)); | 207 const std::string& session_material)); |
| 208 MOCK_METHOD1(OnDidEscrowSensitiveInformation, |
| 209 void(const std::string& escrow_handle)); |
205 MOCK_METHOD1(OnGetFullWallet, void(FullWallet* full_wallet)); | 210 MOCK_METHOD1(OnGetFullWallet, void(FullWallet* full_wallet)); |
206 MOCK_METHOD1(OnGetWalletItems, void(WalletItems* wallet_items)); | 211 MOCK_METHOD1(OnGetWalletItems, void(WalletItems* wallet_items)); |
207 MOCK_METHOD0(OnSendExtendedAutofillStatus, void()); | 212 MOCK_METHOD0(OnSendExtendedAutofillStatus, void()); |
208 MOCK_METHOD0(OnWalletError, void()); | 213 MOCK_METHOD0(OnWalletError, void()); |
209 MOCK_METHOD1(OnNetworkError, void(int response_code)); | 214 MOCK_METHOD1(OnNetworkError, void(int response_code)); |
210 }; | 215 }; |
211 | 216 |
212 // TODO(ahutter): Implement API compatibility tests. See | 217 // TODO(ahutter): Implement API compatibility tests. See |
213 // http://crbug.com/164465. | 218 // http://crbug.com/164465. |
214 | 219 |
215 // TODO(ahutter): Improve this when the error body is captured. See | 220 // TODO(ahutter): Improve this when the error body is captured. See |
216 // http://crbug.com/164410. | 221 // http://crbug.com/164410. |
217 TEST_F(WalletClientTest, WalletErrorOnExpectedVoidResponse) { | 222 TEST_F(WalletClientTest, WalletErrorOnExpectedVoidResponse) { |
218 MockWalletClientObserver observer; | 223 MockWalletClientObserver observer; |
219 EXPECT_CALL(observer, OnWalletError()).Times(1); | 224 EXPECT_CALL(observer, OnWalletError()).Times(1); |
220 | 225 |
221 net::TestURLFetcherFactory factory; | 226 net::TestURLFetcherFactory factory; |
222 | 227 |
223 WalletClient wallet_client(profile_.GetRequestContext()); | 228 WalletClient wallet_client(profile_.GetRequestContext()); |
224 wallet_client.SendExtendedAutofillStatus(true, "", "", "", &observer); | 229 wallet_client.SendExtendedAutofillStatus(true, "", "", "", &observer); |
225 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); | 230 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
226 DCHECK(fetcher); | 231 ASSERT_TRUE(fetcher); |
227 fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR); | 232 fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR); |
228 fetcher->delegate()->OnURLFetchComplete(fetcher); | 233 fetcher->delegate()->OnURLFetchComplete(fetcher); |
229 } | 234 } |
230 | 235 |
231 // TODO(ahutter): Improve this when the error body is captured. See | 236 // TODO(ahutter): Improve this when the error body is captured. See |
232 // http://crbug.com/164410. | 237 // http://crbug.com/164410. |
233 TEST_F(WalletClientTest, WalletErrorOnExpectedResponse) { | 238 TEST_F(WalletClientTest, WalletErrorOnExpectedResponse) { |
234 MockWalletClientObserver observer; | 239 MockWalletClientObserver observer; |
235 EXPECT_CALL(observer, OnWalletError()).Times(1); | 240 EXPECT_CALL(observer, OnWalletError()).Times(1); |
236 | 241 |
237 net::TestURLFetcherFactory factory; | 242 net::TestURLFetcherFactory factory; |
238 | 243 |
239 WalletClient wallet_client(profile_.GetRequestContext()); | 244 WalletClient wallet_client(profile_.GetRequestContext()); |
240 Cart cart("currency_code", "currency_code"); | 245 Cart cart("currency_code", "currency_code"); |
241 wallet_client.GetFullWallet("", "", "", cart, "", "", "", &observer); | 246 wallet_client.GetFullWallet("", "", "", cart, "", "", "", &observer); |
242 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); | 247 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
243 DCHECK(fetcher); | 248 ASSERT_TRUE(fetcher); |
244 fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR); | 249 fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR); |
245 fetcher->delegate()->OnURLFetchComplete(fetcher); | 250 fetcher->delegate()->OnURLFetchComplete(fetcher); |
246 } | 251 } |
247 | 252 |
248 TEST_F(WalletClientTest, NetworkFailureOnExpectedVoidResponse) { | 253 TEST_F(WalletClientTest, NetworkFailureOnExpectedVoidResponse) { |
249 MockWalletClientObserver observer; | 254 MockWalletClientObserver observer; |
250 EXPECT_CALL(observer, OnNetworkError(net::HTTP_UNAUTHORIZED)).Times(1); | 255 EXPECT_CALL(observer, OnNetworkError(net::HTTP_UNAUTHORIZED)).Times(1); |
251 | 256 |
252 net::TestURLFetcherFactory factory; | 257 net::TestURLFetcherFactory factory; |
253 | 258 |
254 WalletClient wallet_client(profile_.GetRequestContext()); | 259 WalletClient wallet_client(profile_.GetRequestContext()); |
255 wallet_client.SendExtendedAutofillStatus(true, "", "", "", &observer); | 260 wallet_client.SendExtendedAutofillStatus(true, "", "", "", &observer); |
256 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); | 261 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
257 DCHECK(fetcher); | 262 ASSERT_TRUE(fetcher); |
258 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); | 263 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); |
259 fetcher->delegate()->OnURLFetchComplete(fetcher); | 264 fetcher->delegate()->OnURLFetchComplete(fetcher); |
260 } | 265 } |
261 | 266 |
262 TEST_F(WalletClientTest, NetworkFailureOnExpectedResponse) { | 267 TEST_F(WalletClientTest, NetworkFailureOnExpectedResponse) { |
263 MockWalletClientObserver observer; | 268 MockWalletClientObserver observer; |
264 EXPECT_CALL(observer, OnNetworkError(net::HTTP_UNAUTHORIZED)).Times(1); | 269 EXPECT_CALL(observer, OnNetworkError(net::HTTP_UNAUTHORIZED)).Times(1); |
265 | 270 |
266 net::TestURLFetcherFactory factory; | 271 net::TestURLFetcherFactory factory; |
267 | 272 |
268 WalletClient wallet_client(profile_.GetRequestContext()); | 273 WalletClient wallet_client(profile_.GetRequestContext()); |
269 Cart cart("currency_code", "currency_code"); | 274 Cart cart("currency_code", "currency_code"); |
270 wallet_client.GetFullWallet("", "", "", cart, "", "", "", &observer); | 275 wallet_client.GetFullWallet("", "", "", cart, "", "", "", &observer); |
271 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); | 276 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
272 DCHECK(fetcher); | 277 ASSERT_TRUE(fetcher); |
273 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); | 278 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); |
274 fetcher->delegate()->OnURLFetchComplete(fetcher); | 279 fetcher->delegate()->OnURLFetchComplete(fetcher); |
275 } | 280 } |
276 | 281 |
277 TEST_F(WalletClientTest, RequestError) { | 282 TEST_F(WalletClientTest, RequestError) { |
278 MockWalletClientObserver observer; | 283 MockWalletClientObserver observer; |
279 EXPECT_CALL(observer, OnWalletError()).Times(1); | 284 EXPECT_CALL(observer, OnWalletError()).Times(1); |
280 | 285 |
281 net::TestURLFetcherFactory factory; | 286 net::TestURLFetcherFactory factory; |
282 | 287 |
283 WalletClient wallet_client(profile_.GetRequestContext()); | 288 WalletClient wallet_client(profile_.GetRequestContext()); |
284 wallet_client.SendExtendedAutofillStatus(true, "", "", "", &observer); | 289 wallet_client.SendExtendedAutofillStatus(true, "", "", "", &observer); |
285 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); | 290 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
286 DCHECK(fetcher); | 291 ASSERT_TRUE(fetcher); |
287 fetcher->set_response_code(net::HTTP_BAD_REQUEST); | 292 fetcher->set_response_code(net::HTTP_BAD_REQUEST); |
288 fetcher->delegate()->OnURLFetchComplete(fetcher); | 293 fetcher->delegate()->OnURLFetchComplete(fetcher); |
289 } | 294 } |
290 | 295 |
291 // TODO(ahutter): Add test for EncryptOtp. | 296 // TODO(ahutter): Add test for EncryptOtp. |
292 // TODO(ahutter): Add retry and failure tests for EncryptOtp, GetWalletItems, | 297 // TODO(ahutter): Add failure tests for EncryptOtp, GetWalletItems, |
293 // GetFullWallet for when data is missing or invalid. | 298 // GetFullWallet for when data is missing or invalid. |
294 | 299 |
| 300 TEST_F(WalletClientTest, EscrowSensitiveInformationSuccess) { |
| 301 MockWalletClientObserver observer; |
| 302 EXPECT_CALL(observer, OnDidEscrowSensitiveInformation("abc")).Times(1); |
| 303 |
| 304 net::TestURLFetcherFactory factory; |
| 305 |
| 306 WalletClient wallet_client(profile_.GetRequestContext()); |
| 307 wallet_client.EscrowSensitiveInformation("pan", |
| 308 "cvn", |
| 309 "obfuscated_gaia_id", |
| 310 &observer); |
| 311 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
| 312 ASSERT_TRUE(fetcher); |
| 313 EXPECT_EQ(kEscrowSensitiveInformationRequest, fetcher->upload_data()); |
| 314 fetcher->set_response_code(net::HTTP_OK); |
| 315 fetcher->SetResponseString("abc"); |
| 316 fetcher->delegate()->OnURLFetchComplete(fetcher); |
| 317 } |
| 318 |
| 319 TEST_F(WalletClientTest, EscrowSensitiveInformationFailure) { |
| 320 MockWalletClientObserver observer; |
| 321 EXPECT_CALL(observer, OnWalletError()).Times(1); |
| 322 |
| 323 net::TestURLFetcherFactory factory; |
| 324 |
| 325 WalletClient wallet_client(profile_.GetRequestContext()); |
| 326 wallet_client.EscrowSensitiveInformation("pan", |
| 327 "cvn", |
| 328 "obfuscated_gaia_id", |
| 329 &observer); |
| 330 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
| 331 ASSERT_TRUE(fetcher); |
| 332 EXPECT_EQ(kEscrowSensitiveInformationRequest, fetcher->upload_data()); |
| 333 fetcher->set_response_code(net::HTTP_OK); |
| 334 fetcher->SetResponseString(""); |
| 335 fetcher->delegate()->OnURLFetchComplete(fetcher); |
| 336 } |
| 337 |
295 TEST_F(WalletClientTest, GetFullWallet) { | 338 TEST_F(WalletClientTest, GetFullWallet) { |
296 MockWalletClientObserver observer; | 339 MockWalletClientObserver observer; |
297 EXPECT_CALL(observer, OnGetFullWallet(testing::NotNull())).Times(1); | 340 EXPECT_CALL(observer, OnGetFullWallet(testing::NotNull())).Times(1); |
298 | 341 |
299 net::TestURLFetcherFactory factory; | 342 net::TestURLFetcherFactory factory; |
300 | 343 |
301 WalletClient wallet_client(profile_.GetRequestContext()); | 344 WalletClient wallet_client(profile_.GetRequestContext()); |
302 Cart cart("currency_code", "currency_code"); | 345 Cart cart("currency_code", "currency_code"); |
303 wallet_client.GetFullWallet("instrument_id", | 346 wallet_client.GetFullWallet("instrument_id", |
304 "shipping_address_id", | 347 "shipping_address_id", |
305 "merchant_domain", | 348 "merchant_domain", |
306 cart, | 349 cart, |
307 "google_transaction_id", | 350 "google_transaction_id", |
308 "encrypted_otp", | 351 "encrypted_otp", |
309 "session_material", | 352 "session_material", |
310 &observer); | 353 &observer); |
311 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); | 354 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
312 DCHECK(fetcher); | 355 ASSERT_TRUE(fetcher); |
313 ASSERT_EQ(kGetFullWalletValidRequest, fetcher->upload_data()); | 356 EXPECT_EQ(kGetFullWalletValidRequest, fetcher->upload_data()); |
314 fetcher->set_response_code(net::HTTP_OK); | 357 fetcher->set_response_code(net::HTTP_OK); |
315 fetcher->SetResponseString(kGetFullWalletValidResponse); | 358 fetcher->SetResponseString(kGetFullWalletValidResponse); |
316 fetcher->delegate()->OnURLFetchComplete(fetcher); | 359 fetcher->delegate()->OnURLFetchComplete(fetcher); |
317 } | 360 } |
318 | 361 |
319 TEST_F(WalletClientTest, AcceptLegalDocuments) { | 362 TEST_F(WalletClientTest, AcceptLegalDocuments) { |
320 MockWalletClientObserver observer; | 363 MockWalletClientObserver observer; |
321 EXPECT_CALL(observer, OnAcceptLegalDocuments()).Times(1); | 364 EXPECT_CALL(observer, OnAcceptLegalDocuments()).Times(1); |
322 | 365 |
323 net::TestURLFetcherFactory factory; | 366 net::TestURLFetcherFactory factory; |
324 | 367 |
325 WalletClient wallet_client(profile_.GetRequestContext()); | 368 WalletClient wallet_client(profile_.GetRequestContext()); |
326 std::vector<std::string> doc_ids; | 369 std::vector<std::string> doc_ids; |
327 doc_ids.push_back("doc_1"); | 370 doc_ids.push_back("doc_1"); |
328 doc_ids.push_back("doc_2"); | 371 doc_ids.push_back("doc_2"); |
329 wallet_client.AcceptLegalDocuments(doc_ids, | 372 wallet_client.AcceptLegalDocuments(doc_ids, |
330 kGoogleTransactionId, | 373 kGoogleTransactionId, |
331 &observer); | 374 &observer); |
332 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); | 375 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
333 DCHECK(fetcher); | 376 ASSERT_TRUE(fetcher); |
334 ASSERT_EQ(kAcceptLegalDocumentsValidRequest, fetcher->upload_data()); | 377 EXPECT_EQ(kAcceptLegalDocumentsValidRequest, fetcher->upload_data()); |
335 fetcher->set_response_code(net::HTTP_OK); | 378 fetcher->set_response_code(net::HTTP_OK); |
336 fetcher->delegate()->OnURLFetchComplete(fetcher); | 379 fetcher->delegate()->OnURLFetchComplete(fetcher); |
337 } | 380 } |
338 | 381 |
339 TEST_F(WalletClientTest, GetWalletItems) { | 382 TEST_F(WalletClientTest, GetWalletItems) { |
340 MockWalletClientObserver observer; | 383 MockWalletClientObserver observer; |
341 EXPECT_CALL(observer, OnGetWalletItems(testing::NotNull())).Times(1); | 384 EXPECT_CALL(observer, OnGetWalletItems(testing::NotNull())).Times(1); |
342 | 385 |
343 net::TestURLFetcherFactory factory; | 386 net::TestURLFetcherFactory factory; |
344 | 387 |
345 WalletClient wallet_client(profile_.GetRequestContext()); | 388 WalletClient wallet_client(profile_.GetRequestContext()); |
346 wallet_client.GetWalletItems(&observer); | 389 wallet_client.GetWalletItems(&observer); |
347 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); | 390 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
348 DCHECK(fetcher); | 391 ASSERT_TRUE(fetcher); |
349 ASSERT_EQ(kGetWalletItemsValidRequest, fetcher->upload_data()); | 392 EXPECT_EQ(kGetWalletItemsValidRequest, fetcher->upload_data()); |
350 fetcher->set_response_code(net::HTTP_OK); | 393 fetcher->set_response_code(net::HTTP_OK); |
351 fetcher->SetResponseString(kGetWalletItemsValidResponse); | 394 fetcher->SetResponseString(kGetWalletItemsValidResponse); |
352 fetcher->delegate()->OnURLFetchComplete(fetcher); | 395 fetcher->delegate()->OnURLFetchComplete(fetcher); |
353 } | 396 } |
354 | 397 |
355 TEST_F(WalletClientTest, SendExtendedAutofillOfStatusSuccess) { | 398 TEST_F(WalletClientTest, SendExtendedAutofillOfStatusSuccess) { |
356 MockWalletClientObserver observer; | 399 MockWalletClientObserver observer; |
357 EXPECT_CALL(observer, OnSendExtendedAutofillStatus()).Times(1); | 400 EXPECT_CALL(observer, OnSendExtendedAutofillStatus()).Times(1); |
358 | 401 |
359 net::TestURLFetcherFactory factory; | 402 net::TestURLFetcherFactory factory; |
360 | 403 |
361 WalletClient wallet_client(profile_.GetRequestContext()); | 404 WalletClient wallet_client(profile_.GetRequestContext()); |
362 wallet_client.SendExtendedAutofillStatus(true, | 405 wallet_client.SendExtendedAutofillStatus(true, |
363 "hostname", | 406 "hostname", |
364 "", | 407 "", |
365 "google_transaction_id", | 408 "google_transaction_id", |
366 &observer); | 409 &observer); |
367 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); | 410 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
368 DCHECK(fetcher); | 411 ASSERT_TRUE(fetcher); |
369 ASSERT_EQ(kSendExtendedAutofillStatusOfSuccessValidRequest, | 412 EXPECT_EQ(kSendExtendedAutofillStatusOfSuccessValidRequest, |
370 fetcher->upload_data()); | 413 fetcher->upload_data()); |
371 fetcher->set_response_code(net::HTTP_OK); | 414 fetcher->set_response_code(net::HTTP_OK); |
372 fetcher->delegate()->OnURLFetchComplete(fetcher); | 415 fetcher->delegate()->OnURLFetchComplete(fetcher); |
373 } | 416 } |
374 | 417 |
375 TEST_F(WalletClientTest, SendExtendedAutofillStatusOfFailure) { | 418 TEST_F(WalletClientTest, SendExtendedAutofillStatusOfFailure) { |
376 MockWalletClientObserver observer; | 419 MockWalletClientObserver observer; |
377 EXPECT_CALL(observer, OnSendExtendedAutofillStatus()).Times(1); | 420 EXPECT_CALL(observer, OnSendExtendedAutofillStatus()).Times(1); |
378 | 421 |
379 net::TestURLFetcherFactory factory; | 422 net::TestURLFetcherFactory factory; |
380 | 423 |
381 WalletClient wallet_client(profile_.GetRequestContext()); | 424 WalletClient wallet_client(profile_.GetRequestContext()); |
382 wallet_client.SendExtendedAutofillStatus(false, | 425 wallet_client.SendExtendedAutofillStatus(false, |
383 "hostname", | 426 "hostname", |
384 "CANNOT_PROCEED", | 427 "CANNOT_PROCEED", |
385 "google_transaction_id", | 428 "google_transaction_id", |
386 &observer); | 429 &observer); |
387 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); | 430 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
388 DCHECK(fetcher); | 431 ASSERT_TRUE(fetcher); |
389 ASSERT_EQ(kSendExtendedAutofillStatusOfFailureValidRequest, | 432 EXPECT_EQ(kSendExtendedAutofillStatusOfFailureValidRequest, |
390 fetcher->upload_data()); | 433 fetcher->upload_data()); |
391 fetcher->set_response_code(net::HTTP_OK); | 434 fetcher->set_response_code(net::HTTP_OK); |
392 fetcher->delegate()->OnURLFetchComplete(fetcher); | 435 fetcher->delegate()->OnURLFetchComplete(fetcher); |
393 } | 436 } |
394 | 437 |
395 } // namespace wallet | 438 } // namespace wallet |
396 | 439 |
OLD | NEW |