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

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

Issue 14904002: Load and send Wallet Risk params after user has agreed (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 7 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/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h" 10 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h"
11 #include "chrome/browser/ui/autofill/autofill_dialog_view.h" 11 #include "chrome/browser/ui/autofill/autofill_dialog_view.h"
12 #include "chrome/common/pref_names.h" 12 #include "chrome/common/pref_names.h"
13 #include "chrome/test/base/testing_profile.h" 13 #include "chrome/test/base/testing_profile.h"
14 #include "components/autofill/browser/autofill_common_test.h" 14 #include "components/autofill/browser/autofill_common_test.h"
15 #include "components/autofill/browser/autofill_metrics.h" 15 #include "components/autofill/browser/autofill_metrics.h"
16 #include "components/autofill/browser/risk/proto/fingerprint.pb.h"
16 #include "components/autofill/browser/test_personal_data_manager.h" 17 #include "components/autofill/browser/test_personal_data_manager.h"
17 #include "components/autofill/browser/wallet/full_wallet.h" 18 #include "components/autofill/browser/wallet/full_wallet.h"
18 #include "components/autofill/browser/wallet/instrument.h" 19 #include "components/autofill/browser/wallet/instrument.h"
19 #include "components/autofill/browser/wallet/wallet_address.h" 20 #include "components/autofill/browser/wallet/wallet_address.h"
20 #include "components/autofill/browser/wallet/wallet_client.h" 21 #include "components/autofill/browser/wallet/wallet_client.h"
21 #include "components/autofill/browser/wallet/wallet_test_util.h" 22 #include "components/autofill/browser/wallet/wallet_test_util.h"
22 #include "components/autofill/common/form_data.h" 23 #include "components/autofill/common/form_data.h"
23 #include "content/public/browser/web_contents.h" 24 #include "content/public/browser/web_contents.h"
24 #include "content/public/test/test_browser_thread.h" 25 #include "content/public/test/test_browser_thread.h"
25 #include "content/public/test/web_contents_tester.h" 26 #include "content/public/test/web_contents_tester.h"
26 #include "testing/gmock/include/gmock/gmock.h" 27 #include "testing/gmock/include/gmock/gmock.h"
27 #include "testing/gtest/include/gtest/gtest.h" 28 #include "testing/gtest/include/gtest/gtest.h"
28 29
29 #if defined(OS_WIN) 30 #if defined(OS_WIN)
30 #include "ui/base/win/scoped_ole_initializer.h" 31 #include "ui/base/win/scoped_ole_initializer.h"
31 #endif 32 #endif
32 33
33 using testing::_; 34 using testing::_;
34 35
35 namespace autofill { 36 namespace autofill {
36 37
37 namespace { 38 namespace {
38 39
39 const char kFakeEmail[] = "user@example.com"; 40 const char kFakeEmail[] = "user@example.com";
41 const char kFakeFingerprintEncoded[] = "CgVaAwiACA==";
40 const char kEditedBillingAddress[] = "123 edited billing address"; 42 const char kEditedBillingAddress[] = "123 edited billing address";
41 const char* kFieldsFromPage[] = { "email", "cc-number", "billing region", 43 const char* kFieldsFromPage[] =
42 "shipping region" }; 44 { "email", "cc-number", "billing region", "shipping region" };
43 const char kSettingsOrigin[] = "Chrome settings"; 45 const char kSettingsOrigin[] = "Chrome settings";
44 46
45 using content::BrowserThread; 47 using content::BrowserThread;
46 48
47 void SetOutputValue(const DetailInputs& inputs, 49 void SetOutputValue(const DetailInputs& inputs,
48 DetailOutputMap* outputs, 50 DetailOutputMap* outputs,
49 AutofillFieldType type, 51 AutofillFieldType type,
50 const std::string& value) { 52 const std::string& value) {
51 for (size_t i = 0; i < inputs.size(); ++i) { 53 for (size_t i = 0; i < inputs.size(); ++i) {
52 const DetailInput& input = inputs[i]; 54 const DetailInput& input = inputs[i];
53 (*outputs)[&input] = input.type == type ? 55 (*outputs)[&input] = input.type == type ?
54 ASCIIToUTF16(value) : 56 ASCIIToUTF16(value) :
55 input.initial_value; 57 input.initial_value;
56 } 58 }
57 } 59 }
58 60
61 scoped_ptr<wallet::FullWallet> CreateFullWalletWithVerifyCvv() {
62 base::DictionaryValue dict;
63 scoped_ptr<base::ListValue> list(new base::ListValue());
64 list->AppendString("verify_cvv");
65 dict.Set("required_action", list.release());
66 return wallet::FullWallet::CreateFullWallet(dict);
67 }
68
69 scoped_ptr<risk::Fingerprint> GetFakeFingerprint() {
70 scoped_ptr<risk::Fingerprint> fingerprint(new risk::Fingerprint());
71 // Add some data to the proto, else the encoded content is empty.
72 fingerprint->mutable_machine_characteristics()->mutable_screen_size()->
73 set_width(1024);
74 return fingerprint.Pass();
75 }
76
59 class TestAutofillDialogView : public AutofillDialogView { 77 class TestAutofillDialogView : public AutofillDialogView {
60 public: 78 public:
61 TestAutofillDialogView() {} 79 TestAutofillDialogView() {}
62 virtual ~TestAutofillDialogView() {} 80 virtual ~TestAutofillDialogView() {}
63 81
64 virtual void Show() OVERRIDE {} 82 virtual void Show() OVERRIDE {}
65 virtual void Hide() OVERRIDE {} 83 virtual void Hide() OVERRIDE {}
66 virtual void UpdateNotificationArea() OVERRIDE {} 84 virtual void UpdateNotificationArea() OVERRIDE {}
67 virtual void UpdateAccountChooser() OVERRIDE {} 85 virtual void UpdateAccountChooser() OVERRIDE {}
68 virtual void UpdateButtonStrip() OVERRIDE {} 86 virtual void UpdateButtonStrip() OVERRIDE {}
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 void set_is_first_run(bool is_first_run) { is_first_run_ = is_first_run; } 233 void set_is_first_run(bool is_first_run) { is_first_run_ = is_first_run; }
216 234
217 const GURL& open_tab_url() { return open_tab_url_; } 235 const GURL& open_tab_url() { return open_tab_url_; }
218 236
219 virtual DialogType GetDialogType() const OVERRIDE { 237 virtual DialogType GetDialogType() const OVERRIDE {
220 return dialog_type_; 238 return dialog_type_;
221 } 239 }
222 240
223 void set_dialog_type(DialogType dialog_type) { dialog_type_ = dialog_type; } 241 void set_dialog_type(DialogType dialog_type) { dialog_type_ = dialog_type; }
224 242
243 MOCK_METHOD0(LoadRiskFingerprintData, void());
244 using AutofillDialogControllerImpl::OnDidLoadRiskFingerprintData;
245
225 protected: 246 protected:
226 virtual PersonalDataManager* GetManager() OVERRIDE { 247 virtual PersonalDataManager* GetManager() OVERRIDE {
227 return &test_manager_; 248 return &test_manager_;
228 } 249 }
229 250
230 virtual wallet::WalletClient* GetWalletClient() OVERRIDE { 251 virtual wallet::WalletClient* GetWalletClient() OVERRIDE {
231 return &test_wallet_client_; 252 return &test_wallet_client_;
232 } 253 }
233 254
234 virtual bool IsFirstRun() const OVERRIDE { 255 virtual bool IsFirstRun() const OVERRIDE {
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 form_data.fields.push_back(field); 299 form_data.fields.push_back(field);
279 } 300 }
280 301
281 profile()->CreateRequestContext(); 302 profile()->CreateRequestContext();
282 test_web_contents_.reset( 303 test_web_contents_.reset(
283 content::WebContentsTester::CreateTestWebContents(profile(), NULL)); 304 content::WebContentsTester::CreateTestWebContents(profile(), NULL));
284 305
285 base::Callback<void(const FormStructure*, const std::string&)> callback = 306 base::Callback<void(const FormStructure*, const std::string&)> callback =
286 base::Bind(&AutofillDialogControllerTest::FinishedCallback, 307 base::Bind(&AutofillDialogControllerTest::FinishedCallback,
287 base::Unretained(this)); 308 base::Unretained(this));
288 controller_ = (new TestAutofillDialogController( 309 controller_ = (new testing::NiceMock<TestAutofillDialogController>(
289 test_web_contents_.get(), 310 test_web_contents_.get(),
290 form_data, 311 form_data,
291 GURL(), 312 GURL(),
292 metric_logger_, 313 metric_logger_,
293 DIALOG_TYPE_REQUEST_AUTOCOMPLETE, 314 DIALOG_TYPE_REQUEST_AUTOCOMPLETE,
294 callback))->AsWeakPtr(); 315 callback))->AsWeakPtr();
295 controller_->Init(profile()); 316 controller_->Init(profile());
296 controller_->Show(); 317 controller_->Show();
297 controller_->OnUserNameFetchSuccess(kFakeEmail); 318 controller_->OnUserNameFetchSuccess(kFakeEmail);
298 } 319 }
299 320
300 virtual void TearDown() OVERRIDE { 321 virtual void TearDown() OVERRIDE {
301 if (controller_) 322 if (controller_)
302 controller_->ViewClosed(); 323 controller_->ViewClosed();
303 } 324 }
304 325
305 protected: 326 protected:
306 static scoped_ptr<wallet::FullWallet> CreateFullWalletWithVerifyCvv() {
307 base::DictionaryValue dict;
308 scoped_ptr<base::ListValue> list(new base::ListValue());
309 list->AppendString("verify_cvv");
310 dict.Set("required_action", list.release());
311 return wallet::FullWallet::CreateFullWallet(dict);
312 }
313
314 void FillCreditCardInputs() { 327 void FillCreditCardInputs() {
315 DetailOutputMap cc_outputs; 328 DetailOutputMap cc_outputs;
316 const DetailInputs& cc_inputs = 329 const DetailInputs& cc_inputs =
317 controller()->RequestedFieldsForSection(SECTION_CC); 330 controller()->RequestedFieldsForSection(SECTION_CC);
318 for (size_t i = 0; i < cc_inputs.size(); ++i) { 331 for (size_t i = 0; i < cc_inputs.size(); ++i) {
319 cc_outputs[&cc_inputs[i]] = ASCIIToUTF16("11"); 332 cc_outputs[&cc_inputs[i]] = ASCIIToUTF16("11");
320 } 333 }
321 controller()->GetView()->SetUserInput(SECTION_CC, cc_outputs); 334 controller()->GetView()->SetUserInput(SECTION_CC, cc_outputs);
322 } 335 }
323 336
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 EXPECT_EQ("CA", UTF16ToUTF8(form_structure()->field(3)->value)); 649 EXPECT_EQ("CA", UTF16ToUTF8(form_structure()->field(3)->value));
637 EXPECT_EQ(ADDRESS_BILLING_STATE, form_structure()->field(2)->type()); 650 EXPECT_EQ(ADDRESS_BILLING_STATE, form_structure()->field(2)->type());
638 EXPECT_EQ(ADDRESS_HOME_STATE, form_structure()->field(3)->type()); 651 EXPECT_EQ(ADDRESS_HOME_STATE, form_structure()->field(3)->type());
639 } 652 }
640 653
641 TEST_F(AutofillDialogControllerTest, AcceptLegalDocuments) { 654 TEST_F(AutofillDialogControllerTest, AcceptLegalDocuments) {
642 EXPECT_CALL(*controller()->GetTestingWalletClient(), 655 EXPECT_CALL(*controller()->GetTestingWalletClient(),
643 AcceptLegalDocuments(_, _, _)).Times(1); 656 AcceptLegalDocuments(_, _, _)).Times(1);
644 EXPECT_CALL(*controller()->GetTestingWalletClient(), 657 EXPECT_CALL(*controller()->GetTestingWalletClient(),
645 GetFullWallet(_)).Times(1); 658 GetFullWallet(_)).Times(1);
659 EXPECT_CALL(*controller(), LoadRiskFingerprintData()).Times(1);
646 660
647 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); 661 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
648 wallet_items->AddLegalDocument(wallet::GetTestLegalDocument()); 662 wallet_items->AddLegalDocument(wallet::GetTestLegalDocument());
649 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); 663 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
650 wallet_items->AddAddress(wallet::GetTestShippingAddress()); 664 wallet_items->AddAddress(wallet::GetTestShippingAddress());
651 controller()->OnDidGetWalletItems(wallet_items.Pass()); 665 controller()->OnDidGetWalletItems(wallet_items.Pass());
652 controller()->OnAccept(); 666 controller()->OnAccept();
667 controller()->OnDidAcceptLegalDocuments();
668 controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass());
653 } 669 }
654 670
655 // Makes sure the default object IDs are respected. 671 // Makes sure the default object IDs are respected.
656 TEST_F(AutofillDialogControllerTest, WalletDefaultItems) { 672 TEST_F(AutofillDialogControllerTest, WalletDefaultItems) {
657 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); 673 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
658 wallet_items->AddInstrument(wallet::GetTestNonDefaultMaskedInstrument()); 674 wallet_items->AddInstrument(wallet::GetTestNonDefaultMaskedInstrument());
659 wallet_items->AddInstrument(wallet::GetTestNonDefaultMaskedInstrument()); 675 wallet_items->AddInstrument(wallet::GetTestNonDefaultMaskedInstrument());
660 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); 676 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
661 wallet_items->AddInstrument(wallet::GetTestNonDefaultMaskedInstrument()); 677 wallet_items->AddInstrument(wallet::GetTestNonDefaultMaskedInstrument());
662 678
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
1029 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1045 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1030 GetFullWallet(_)).Times(1); 1046 GetFullWallet(_)).Times(1);
1031 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1047 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1032 AuthenticateInstrument(_, _, _)).Times(1); 1048 AuthenticateInstrument(_, _, _)).Times(1);
1033 1049
1034 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); 1050 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
1035 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); 1051 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
1036 wallet_items->AddAddress(wallet::GetTestShippingAddress()); 1052 wallet_items->AddAddress(wallet::GetTestShippingAddress());
1037 controller()->OnDidGetWalletItems(wallet_items.Pass()); 1053 controller()->OnDidGetWalletItems(wallet_items.Pass());
1038 controller()->OnAccept(); 1054 controller()->OnAccept();
1055 controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass());
1039 1056
1040 EXPECT_TRUE(NotificationsOfType(DialogNotification::REQUIRED_ACTION).empty()); 1057 EXPECT_TRUE(NotificationsOfType(DialogNotification::REQUIRED_ACTION).empty());
1041 EXPECT_TRUE(controller()->SectionIsActive(SECTION_SHIPPING)); 1058 EXPECT_TRUE(controller()->SectionIsActive(SECTION_SHIPPING));
1042 EXPECT_TRUE(controller()->SectionIsActive(SECTION_CC_BILLING)); 1059 EXPECT_TRUE(controller()->SectionIsActive(SECTION_CC_BILLING));
1043 EXPECT_FALSE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); 1060 EXPECT_FALSE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK));
1044 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL)); 1061 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL));
1045 1062
1046 SuggestionState suggestion_state = 1063 SuggestionState suggestion_state =
1047 controller()->SuggestionStateForSection(SECTION_CC_BILLING); 1064 controller()->SuggestionStateForSection(SECTION_CC_BILLING);
1048 EXPECT_TRUE(suggestion_state.extra_text.empty()); 1065 EXPECT_TRUE(suggestion_state.extra_text.empty());
(...skipping 18 matching lines...) Expand all
1067 1084
1068 TEST_F(AutofillDialogControllerTest, ErrorDuringSubmit) { 1085 TEST_F(AutofillDialogControllerTest, ErrorDuringSubmit) {
1069 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1086 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1070 GetFullWallet(_)).Times(1); 1087 GetFullWallet(_)).Times(1);
1071 1088
1072 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); 1089 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
1073 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); 1090 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
1074 wallet_items->AddAddress(wallet::GetTestShippingAddress()); 1091 wallet_items->AddAddress(wallet::GetTestShippingAddress());
1075 controller()->OnDidGetWalletItems(wallet_items.Pass()); 1092 controller()->OnDidGetWalletItems(wallet_items.Pass());
1076 controller()->OnAccept(); 1093 controller()->OnAccept();
1094 controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass());
1077 1095
1078 EXPECT_FALSE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); 1096 EXPECT_FALSE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK));
1079 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL)); 1097 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL));
1080 1098
1081 controller()->OnWalletError(wallet::WalletClient::UNKNOWN_ERROR); 1099 controller()->OnWalletError(wallet::WalletClient::UNKNOWN_ERROR);
1082 1100
1083 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); 1101 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK));
1084 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL)); 1102 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL));
1085 } 1103 }
1086 1104
1087 // TODO(dbeam): disallow changing accounts instead and remove this test. 1105 // TODO(dbeam): disallow changing accounts instead and remove this test.
1088 TEST_F(AutofillDialogControllerTest, ChangeAccountDuringSubmit) { 1106 TEST_F(AutofillDialogControllerTest, ChangeAccountDuringSubmit) {
1089 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1107 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1090 GetFullWallet(_)).Times(1); 1108 GetFullWallet(_)).Times(1);
1091 1109
1092 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); 1110 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
1093 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); 1111 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
1094 wallet_items->AddAddress(wallet::GetTestShippingAddress()); 1112 wallet_items->AddAddress(wallet::GetTestShippingAddress());
1095 controller()->OnDidGetWalletItems(wallet_items.Pass()); 1113 controller()->OnDidGetWalletItems(wallet_items.Pass());
1096 controller()->OnAccept(); 1114 controller()->OnAccept();
1115 controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass());
1097 1116
1098 EXPECT_FALSE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); 1117 EXPECT_FALSE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK));
1099 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL)); 1118 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL));
1100 1119
1101 SwitchToWallet(); 1120 SwitchToWallet();
1102 SwitchToAutofill(); 1121 SwitchToAutofill();
1103 1122
1104 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); 1123 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK));
1105 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL)); 1124 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL));
1106 } 1125 }
1107 1126
1108 TEST_F(AutofillDialogControllerTest, ErrorDuringVerifyCvv) { 1127 TEST_F(AutofillDialogControllerTest, ErrorDuringVerifyCvv) {
1109 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1128 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1110 GetFullWallet(_)).Times(1); 1129 GetFullWallet(_)).Times(1);
1111 1130
1112 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); 1131 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
1113 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); 1132 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
1114 wallet_items->AddAddress(wallet::GetTestShippingAddress()); 1133 wallet_items->AddAddress(wallet::GetTestShippingAddress());
1115 controller()->OnDidGetWalletItems(wallet_items.Pass()); 1134 controller()->OnDidGetWalletItems(wallet_items.Pass());
1116 controller()->OnAccept(); 1135 controller()->OnAccept();
1136 controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass());
1117 controller()->OnDidGetFullWallet(CreateFullWalletWithVerifyCvv()); 1137 controller()->OnDidGetFullWallet(CreateFullWalletWithVerifyCvv());
1118 1138
1119 ASSERT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); 1139 ASSERT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK));
1120 ASSERT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL)); 1140 ASSERT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL));
1121 1141
1122 controller()->OnWalletError(wallet::WalletClient::UNKNOWN_ERROR); 1142 controller()->OnWalletError(wallet::WalletClient::UNKNOWN_ERROR);
1123 1143
1124 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); 1144 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK));
1125 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL)); 1145 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL));
1126 } 1146 }
1127 1147
1128 // TODO(dbeam): disallow changing accounts instead and remove this test. 1148 // TODO(dbeam): disallow changing accounts instead and remove this test.
1129 TEST_F(AutofillDialogControllerTest, ChangeAccountDuringVerifyCvv) { 1149 TEST_F(AutofillDialogControllerTest, ChangeAccountDuringVerifyCvv) {
1130 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1150 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1131 GetFullWallet(_)).Times(1); 1151 GetFullWallet(_)).Times(1);
1132 1152
1133 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); 1153 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
1134 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); 1154 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
1135 wallet_items->AddAddress(wallet::GetTestShippingAddress()); 1155 wallet_items->AddAddress(wallet::GetTestShippingAddress());
1136 controller()->OnDidGetWalletItems(wallet_items.Pass()); 1156 controller()->OnDidGetWalletItems(wallet_items.Pass());
1137 controller()->OnAccept(); 1157 controller()->OnAccept();
1158 controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass());
1138 controller()->OnDidGetFullWallet(CreateFullWalletWithVerifyCvv()); 1159 controller()->OnDidGetFullWallet(CreateFullWalletWithVerifyCvv());
1139 1160
1140 ASSERT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); 1161 ASSERT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK));
1141 ASSERT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL)); 1162 ASSERT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL));
1142 1163
1143 SwitchToWallet(); 1164 SwitchToWallet();
1144 SwitchToAutofill(); 1165 SwitchToAutofill();
1145 1166
1146 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); 1167 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK));
1147 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL)); 1168 EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL));
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
1397 controller()->EditCancelledForSection(SECTION_EMAIL); 1418 controller()->EditCancelledForSection(SECTION_EMAIL);
1398 EXPECT_FALSE(controller()->ShouldOfferToSaveInChrome()); 1419 EXPECT_FALSE(controller()->ShouldOfferToSaveInChrome());
1399 1420
1400 controller()->MenuModelForSection(SECTION_EMAIL)->ActivatedAt(1); 1421 controller()->MenuModelForSection(SECTION_EMAIL)->ActivatedAt(1);
1401 EXPECT_TRUE(controller()->ShouldOfferToSaveInChrome()); 1422 EXPECT_TRUE(controller()->ShouldOfferToSaveInChrome());
1402 1423
1403 profile()->set_incognito(true); 1424 profile()->set_incognito(true);
1404 EXPECT_FALSE(controller()->ShouldOfferToSaveInChrome()); 1425 EXPECT_FALSE(controller()->ShouldOfferToSaveInChrome());
1405 } 1426 }
1406 1427
1428 TEST_F(AutofillDialogControllerTest, RiskNeverLoadsWithPendingLegalDocuments) {
1429 EXPECT_CALL(*controller(), LoadRiskFingerprintData()).Times(0);
1430
1431 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
1432 wallet_items->AddLegalDocument(wallet::GetTestLegalDocument());
1433 controller()->OnDidGetWalletItems(wallet_items.Pass());
1434 controller()->OnAccept();
1435
1436 EXPECT_TRUE(controller()->GetRiskData().empty());
1437 }
1438
1439 TEST_F(AutofillDialogControllerTest, RiskLoadsWithoutPendingLegalDocuments) {
1440 EXPECT_CALL(*controller(), LoadRiskFingerprintData()).Times(1);
1441
1442 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
1443 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
1444 wallet_items->AddAddress(wallet::GetTestShippingAddress());
1445 controller()->OnDidGetWalletItems(wallet_items.Pass());
1446 controller()->OnAccept();
1447
1448 EXPECT_TRUE(controller()->GetRiskData().empty());
1449
1450 controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass());
1451 EXPECT_EQ(kFakeFingerprintEncoded, controller()->GetRiskData());
1452 }
1453
1454 TEST_F(AutofillDialogControllerTest, RiskLoadsAfterAcceptingLegalDocuments) {
1455 EXPECT_CALL(*controller(), LoadRiskFingerprintData()).Times(0);
1456
1457 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
1458 wallet_items->AddLegalDocument(wallet::GetTestLegalDocument());
1459 controller()->OnDidGetWalletItems(wallet_items.Pass());
1460
1461 testing::Mock::VerifyAndClear(controller());
1462 EXPECT_CALL(*controller(), LoadRiskFingerprintData()).Times(1);
1463
1464 controller()->OnAccept();
1465 EXPECT_TRUE(controller()->GetRiskData().empty());
1466
1467 // Simulate a risk load and verify |GetRiskData()| matches the encoded value.
1468 controller()->OnDidAcceptLegalDocuments();
1469 controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass());
1470 EXPECT_EQ(kFakeFingerprintEncoded, controller()->GetRiskData());
1471 }
1472
1407 } // namespace autofill 1473 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698