Index: chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc |
diff --git a/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc b/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc |
index 423badcc9794d815992240739011bbffd06b9fb1..117aa64eaa78b8d6f7f58afaad8a392b765dea6a 100644 |
--- a/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc |
+++ b/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc |
@@ -13,6 +13,7 @@ |
#include "chrome/test/base/testing_profile.h" |
#include "components/autofill/browser/autofill_common_test.h" |
#include "components/autofill/browser/autofill_metrics.h" |
+#include "components/autofill/browser/risk/proto/fingerprint.pb.h" |
#include "components/autofill/browser/test_personal_data_manager.h" |
#include "components/autofill/browser/wallet/full_wallet.h" |
#include "components/autofill/browser/wallet/instrument.h" |
@@ -34,12 +35,11 @@ using testing::_; |
namespace autofill { |
-namespace { |
Ilya Sherman
2013/05/22 23:53:59
Why did you remove this? It should wrap everythin
Dan Beam
2013/05/23 00:30:40
look at newer patchsets
|
- |
const char kFakeEmail[] = "user@example.com"; |
+const char kFakeFingerprintEncoded[] = "CgVaAwiACA=="; |
const char kEditedBillingAddress[] = "123 edited billing address"; |
-const char* kFieldsFromPage[] = { "email", "cc-number", "billing region", |
- "shipping region" }; |
+const char* kFieldsFromPage[] = |
+ { "email", "cc-number", "billing region", "shipping region" }; |
const char kSettingsOrigin[] = "Chrome settings"; |
using content::BrowserThread; |
@@ -222,6 +222,14 @@ class TestAutofillDialogController |
void set_dialog_type(DialogType dialog_type) { dialog_type_ = dialog_type; } |
+ MOCK_METHOD0(LoadRiskFingerprintData, void()); |
+ |
+ virtual void OnDidLoadRiskFingerprintData( |
+ scoped_ptr<risk::Fingerprint> fingerprint) OVERRIDE { |
+ AutofillDialogControllerImpl::OnDidLoadRiskFingerprintData( |
+ fingerprint.Pass()); |
+ } |
Ilya Sherman
2013/05/22 23:53:59
Optional nit: I think you can just write "using Au
Dan Beam
2013/05/23 00:30:40
Done.
|
+ |
protected: |
virtual PersonalDataManager* GetManager() OVERRIDE { |
return &test_manager_; |
@@ -285,7 +293,7 @@ class AutofillDialogControllerTest : public testing::Test { |
base::Callback<void(const FormStructure*, const std::string&)> callback = |
base::Bind(&AutofillDialogControllerTest::FinishedCallback, |
base::Unretained(this)); |
- controller_ = (new TestAutofillDialogController( |
+ controller_ = (new testing::NiceMock<TestAutofillDialogController>( |
test_web_contents_.get(), |
form_data, |
GURL(), |
@@ -311,6 +319,14 @@ class AutofillDialogControllerTest : public testing::Test { |
return wallet::FullWallet::CreateFullWallet(dict); |
} |
+ static scoped_ptr<risk::Fingerprint> GetFakeFingerprint() { |
+ scoped_ptr<risk::Fingerprint> fingerprint(new risk::Fingerprint()); |
+ // Add some data to the proto, else the encoded content is empty. |
+ fingerprint->mutable_machine_characteristics()->mutable_screen_size()-> |
+ set_width(1024); |
+ return fingerprint.Pass(); |
+ } |
Ilya Sherman
2013/05/22 23:53:59
nit: Please define this as a free function rather
Dan Beam
2013/05/23 00:30:40
Done.
|
+ |
void FillCreditCardInputs() { |
DetailOutputMap cc_outputs; |
const DetailInputs& cc_inputs = |
@@ -383,8 +399,6 @@ class AutofillDialogControllerTest : public testing::Test { |
DISALLOW_COPY_AND_ASSIGN(AutofillDialogControllerTest); |
}; |
-} // namespace |
- |
// This test makes sure nothing falls over when fields are being validity- |
// checked. |
TEST_F(AutofillDialogControllerTest, ValidityCheck) { |
@@ -607,6 +621,7 @@ TEST_F(AutofillDialogControllerTest, AcceptLegalDocuments) { |
AcceptLegalDocuments(_, _, _)).Times(1); |
EXPECT_CALL(*controller()->GetTestingWalletClient(), |
GetFullWallet(_)).Times(1); |
+ EXPECT_CALL(*controller(), LoadRiskFingerprintData()).Times(1); |
scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); |
wallet_items->AddLegalDocument(wallet::GetTestLegalDocument()); |
@@ -614,6 +629,8 @@ TEST_F(AutofillDialogControllerTest, AcceptLegalDocuments) { |
wallet_items->AddAddress(wallet::GetTestShippingAddress()); |
controller()->OnDidGetWalletItems(wallet_items.Pass()); |
controller()->OnAccept(); |
+ controller()->OnDidAcceptLegalDocuments(); |
+ controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass()); |
} |
// Makes sure the default object IDs are respected. |
@@ -942,6 +959,7 @@ TEST_F(AutofillDialogControllerTest, VerifyCvv) { |
wallet_items->AddAddress(wallet::GetTestShippingAddress()); |
controller()->OnDidGetWalletItems(wallet_items.Pass()); |
controller()->OnAccept(); |
+ controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass()); |
EXPECT_TRUE(NotificationsOfType(DialogNotification::REQUIRED_ACTION).empty()); |
EXPECT_TRUE(controller()->SectionIsActive(SECTION_SHIPPING)); |
@@ -980,6 +998,7 @@ TEST_F(AutofillDialogControllerTest, ErrorDuringSubmit) { |
wallet_items->AddAddress(wallet::GetTestShippingAddress()); |
controller()->OnDidGetWalletItems(wallet_items.Pass()); |
controller()->OnAccept(); |
+ controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass()); |
EXPECT_FALSE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); |
EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL)); |
@@ -1000,6 +1019,7 @@ TEST_F(AutofillDialogControllerTest, ChangeAccountDuringSubmit) { |
wallet_items->AddAddress(wallet::GetTestShippingAddress()); |
controller()->OnDidGetWalletItems(wallet_items.Pass()); |
controller()->OnAccept(); |
+ controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass()); |
EXPECT_FALSE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); |
EXPECT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_CANCEL)); |
@@ -1020,6 +1040,7 @@ TEST_F(AutofillDialogControllerTest, ErrorDuringVerifyCvv) { |
wallet_items->AddAddress(wallet::GetTestShippingAddress()); |
controller()->OnDidGetWalletItems(wallet_items.Pass()); |
controller()->OnAccept(); |
+ controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass()); |
controller()->OnDidGetFullWallet(CreateFullWalletWithVerifyCvv()); |
ASSERT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); |
@@ -1041,6 +1062,7 @@ TEST_F(AutofillDialogControllerTest, ChangeAccountDuringVerifyCvv) { |
wallet_items->AddAddress(wallet::GetTestShippingAddress()); |
controller()->OnDidGetWalletItems(wallet_items.Pass()); |
controller()->OnAccept(); |
+ controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass()); |
controller()->OnDidGetFullWallet(CreateFullWalletWithVerifyCvv()); |
ASSERT_TRUE(controller()->IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)); |
@@ -1312,4 +1334,48 @@ TEST_F(AutofillDialogControllerTest, SaveDetailsInChrome) { |
EXPECT_FALSE(controller()->ShouldOfferToSaveInChrome()); |
} |
+TEST_F(AutofillDialogControllerTest, RiskNeverLoadsWithPendingLegalDocuments) { |
+ EXPECT_CALL(*controller(), LoadRiskFingerprintData()).Times(0); |
+ |
+ scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); |
+ wallet_items->AddLegalDocument(wallet::GetTestLegalDocument()); |
+ controller()->OnDidGetWalletItems(wallet_items.Pass()); |
+ |
+ EXPECT_EQ("risky business", controller()->GetRiskData()); |
Ilya Sherman
2013/05/22 23:53:59
Should this test call controller()->OnAccept(); be
Dan Beam
2013/05/23 00:30:40
Done.
|
+} |
+ |
+TEST_F(AutofillDialogControllerTest, RiskLoadsWithoutPendingLegalDocuments) { |
+ EXPECT_CALL(*controller(), LoadRiskFingerprintData()).Times(1); |
+ |
+ scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); |
+ wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); |
+ wallet_items->AddAddress(wallet::GetTestShippingAddress()); |
+ controller()->OnDidGetWalletItems(wallet_items.Pass()); |
+ controller()->OnAccept(); |
+ |
+ EXPECT_EQ("risky business", controller()->GetRiskData()); |
+ |
+ controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass()); |
+ EXPECT_EQ(kFakeFingerprintEncoded, controller()->GetRiskData()); |
+} |
+ |
+TEST_F(AutofillDialogControllerTest, RiskLoadsAfterAcceptingLegalDocuments) { |
+ EXPECT_CALL(*controller(), LoadRiskFingerprintData()).Times(0); |
+ |
+ scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); |
+ wallet_items->AddLegalDocument(wallet::GetTestLegalDocument()); |
+ controller()->OnDidGetWalletItems(wallet_items.Pass()); |
+ |
+ testing::Mock::VerifyAndClear(controller()); |
+ EXPECT_CALL(*controller(), LoadRiskFingerprintData()).Times(1); |
+ |
+ controller()->OnAccept(); |
+ EXPECT_EQ("risky business", controller()->GetRiskData()); |
+ |
+ // Simulate a risk load and verify |GetRiskData()| matches the encoded value. |
+ controller()->OnDidAcceptLegalDocuments(); |
+ controller()->OnDidLoadRiskFingerprintData(GetFakeFingerprint().Pass()); |
+ EXPECT_EQ(kFakeFingerprintEncoded, controller()->GetRiskData()); |
+} |
+ |
} // namespace autofill |