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

Side by Side Diff: chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc

Issue 12893007: Implementing VERIFY_CVV required action. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ahutter@ review Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/guid.h" 5 #include "base/guid.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h" 9 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h"
10 #include "chrome/browser/ui/autofill/autofill_dialog_view.h" 10 #include "chrome/browser/ui/autofill/autofill_dialog_view.h"
11 #include "chrome/common/pref_names.h" 11 #include "chrome/common/pref_names.h"
12 #include "chrome/test/base/testing_profile.h" 12 #include "chrome/test/base/testing_profile.h"
13 #include "components/autofill/browser/autofill_common_test.h" 13 #include "components/autofill/browser/autofill_common_test.h"
14 #include "components/autofill/browser/autofill_metrics.h" 14 #include "components/autofill/browser/autofill_metrics.h"
15 #include "components/autofill/browser/wallet/full_wallet.h"
15 #include "components/autofill/browser/wallet/instrument.h" 16 #include "components/autofill/browser/wallet/instrument.h"
16 #include "components/autofill/browser/wallet/wallet_address.h" 17 #include "components/autofill/browser/wallet/wallet_address.h"
17 #include "components/autofill/browser/wallet/wallet_client.h" 18 #include "components/autofill/browser/wallet/wallet_client.h"
18 #include "components/autofill/browser/wallet/wallet_test_util.h" 19 #include "components/autofill/browser/wallet/wallet_test_util.h"
19 #include "components/autofill/common/form_data.h" 20 #include "components/autofill/common/form_data.h"
20 #include "content/public/browser/web_contents.h" 21 #include "content/public/browser/web_contents.h"
21 #include "content/public/test/test_browser_thread.h" 22 #include "content/public/test/test_browser_thread.h"
22 #include "content/public/test/web_contents_tester.h" 23 #include "content/public/test/web_contents_tester.h"
23 #include "testing/gmock/include/gmock/gmock.h" 24 #include "testing/gmock/include/gmock/gmock.h"
24 #include "testing/gtest/include/gtest/gtest.h" 25 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 TestWalletClient(net::URLRequestContextGetter* context, 87 TestWalletClient(net::URLRequestContextGetter* context,
87 wallet::WalletClientDelegate* delegate) 88 wallet::WalletClientDelegate* delegate)
88 : wallet::WalletClient(context, delegate) {} 89 : wallet::WalletClient(context, delegate) {}
89 virtual ~TestWalletClient() {} 90 virtual ~TestWalletClient() {}
90 91
91 MOCK_METHOD3(AcceptLegalDocuments, 92 MOCK_METHOD3(AcceptLegalDocuments,
92 void(const std::vector<std::string>& document_ids, 93 void(const std::vector<std::string>& document_ids,
93 const std::string& google_transaction_id, 94 const std::string& google_transaction_id,
94 const GURL& source_url)); 95 const GURL& source_url));
95 96
97 MOCK_METHOD3(AuthenticateInstrument,
98 void(const std::string& instrument_id,
99 const std::string& card_verification_number,
100 const std::string& obfuscated_gaia_id));
101
96 MOCK_METHOD1(GetFullWallet, 102 MOCK_METHOD1(GetFullWallet,
97 void(const wallet::WalletClient::FullWalletRequest& request)); 103 void(const wallet::WalletClient::FullWalletRequest& request));
98 104
99 MOCK_METHOD2(SaveAddress, 105 MOCK_METHOD2(SaveAddress,
100 void(const wallet::Address& address, const GURL& source_url)); 106 void(const wallet::Address& address, const GURL& source_url));
101 107
102 MOCK_METHOD3(SaveInstrument, 108 MOCK_METHOD3(SaveInstrument,
103 void(const wallet::Instrument& instrument, 109 void(const wallet::Instrument& instrument,
104 const std::string& obfuscated_gaia_id, 110 const std::string& obfuscated_gaia_id,
105 const GURL& source_url)); 111 const GURL& source_url));
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 EXPECT_CALL(*controller()->GetTestingWalletClient(), 341 EXPECT_CALL(*controller()->GetTestingWalletClient(),
336 AcceptLegalDocuments(_, _, _)).Times(1); 342 AcceptLegalDocuments(_, _, _)).Times(1);
337 EXPECT_CALL(*controller()->GetTestingWalletClient(), 343 EXPECT_CALL(*controller()->GetTestingWalletClient(),
338 GetFullWallet(_)).Times(1); 344 GetFullWallet(_)).Times(1);
339 345
340 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); 346 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
341 wallet_items->AddLegalDocument(wallet::GetTestLegalDocument()); 347 wallet_items->AddLegalDocument(wallet::GetTestLegalDocument());
342 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); 348 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
343 wallet_items->AddAddress(wallet::GetTestShippingAddress()); 349 wallet_items->AddAddress(wallet::GetTestShippingAddress());
344 controller()->OnDidGetWalletItems(wallet_items.Pass()); 350 controller()->OnDidGetWalletItems(wallet_items.Pass());
345 controller()->OnSubmit(); 351 controller()->OnAccept();
346 } 352 }
347 353
348 TEST_F(AutofillDialogControllerTest, SaveAddress) { 354 TEST_F(AutofillDialogControllerTest, SaveAddress) {
349 controller()->set_is_paying_with_wallet(true); 355 controller()->set_is_paying_with_wallet(true);
350 356
351 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(1); 357 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(1);
352 EXPECT_CALL(*controller()->GetTestingWalletClient(), 358 EXPECT_CALL(*controller()->GetTestingWalletClient(),
353 SaveAddress(_, _)).Times(1); 359 SaveAddress(_, _)).Times(1);
354 360
355 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); 361 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
356 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); 362 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
357 controller()->OnDidGetWalletItems(wallet_items.Pass()); 363 controller()->OnDidGetWalletItems(wallet_items.Pass());
358 controller()->OnSubmit(); 364 controller()->OnAccept();
359 } 365 }
360 366
361 TEST_F(AutofillDialogControllerTest, SaveInstrument) { 367 TEST_F(AutofillDialogControllerTest, SaveInstrument) {
362 controller()->set_is_paying_with_wallet(true); 368 controller()->set_is_paying_with_wallet(true);
363 369
364 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(1); 370 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(1);
365 EXPECT_CALL(*controller()->GetTestingWalletClient(), 371 EXPECT_CALL(*controller()->GetTestingWalletClient(),
366 SaveInstrument(_, _, _)).Times(1); 372 SaveInstrument(_, _, _)).Times(1);
367 373
368 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); 374 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
369 wallet_items->AddAddress(wallet::GetTestShippingAddress()); 375 wallet_items->AddAddress(wallet::GetTestShippingAddress());
370 controller()->OnDidGetWalletItems(wallet_items.Pass()); 376 controller()->OnDidGetWalletItems(wallet_items.Pass());
371 controller()->OnSubmit(); 377 controller()->OnAccept();
372 } 378 }
373 379
374 TEST_F(AutofillDialogControllerTest, SaveInstrumentAndAddress) { 380 TEST_F(AutofillDialogControllerTest, SaveInstrumentAndAddress) {
375 controller()->set_is_paying_with_wallet(true); 381 controller()->set_is_paying_with_wallet(true);
376 382
377 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(1); 383 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(1);
378 EXPECT_CALL(*controller()->GetTestingWalletClient(), 384 EXPECT_CALL(*controller()->GetTestingWalletClient(),
379 SaveInstrumentAndAddress(_, _, _, _)).Times(1); 385 SaveInstrumentAndAddress(_, _, _, _)).Times(1);
380 386
381 controller()->OnDidGetWalletItems(wallet::GetTestWalletItems()); 387 controller()->OnDidGetWalletItems(wallet::GetTestWalletItems());
382 controller()->OnSubmit(); 388 controller()->OnAccept();
383 } 389 }
384 390
385 TEST_F(AutofillDialogControllerTest, Cancel) { 391 TEST_F(AutofillDialogControllerTest, Cancel) {
386 controller()->set_is_paying_with_wallet(true); 392 controller()->set_is_paying_with_wallet(true);
387 393
388 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(1); 394 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(1);
389 395
390 controller()->OnDidGetWalletItems(wallet::GetTestWalletItems()); 396 controller()->OnDidGetWalletItems(wallet::GetTestWalletItems());
391 controller()->OnCancel(); 397 controller()->OnCancel();
392 } 398 }
393 399
400 TEST_F(AutofillDialogControllerTest, VerifyCvv) {
401 controller()->set_is_paying_with_wallet(true);
402
403 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(2);
404 EXPECT_CALL(*controller()->GetTestingWalletClient(),
405 GetFullWallet(_)).Times(1);
406 EXPECT_CALL(*controller()->GetTestingWalletClient(),
407 AuthenticateInstrument(_, _, _)).Times(1);
408
409 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
410 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
411 wallet_items->AddAddress(wallet::GetTestShippingAddress());
412 controller()->OnDidGetWalletItems(wallet_items.Pass());
413 controller()->OnAccept();
414
415 scoped_ptr<base::ListValue> list(new base::ListValue());
416 list->AppendString("verify_cvv");
417
418 base::DictionaryValue dict;
419 dict.Set("required_action", list.release());
420
421 controller()->OnDidGetFullWallet(wallet::FullWallet::CreateFullWallet(dict));
422 EXPECT_TRUE(controller()->IsSubmitPausedOn(wallet::VERIFY_CVV));
423 EXPECT_FALSE(controller()->SectionIsActive(SECTION_EMAIL));
424 EXPECT_FALSE(controller()->SectionIsActive(SECTION_SHIPPING));
425 EXPECT_TRUE(controller()->SectionIsActive(SECTION_CC_BILLING));
426
427 controller()->OnAccept();
428 }
429
394 } // namespace autofill 430 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698