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

Unified Diff: chrome/browser/ui/autofill/card_unmask_prompt_controller_impl_unittest.cc

Issue 1138653003: Move card unmask interfaces and controller into the autofill component. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix missing override declaration Created 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/autofill/card_unmask_prompt_controller_impl_unittest.cc
diff --git a/chrome/browser/ui/autofill/card_unmask_prompt_controller_impl_unittest.cc b/chrome/browser/ui/autofill/card_unmask_prompt_controller_impl_unittest.cc
deleted file mode 100644
index 86f1c11a517861351b229df7d10067b3381765f9..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/autofill/card_unmask_prompt_controller_impl_unittest.cc
+++ /dev/null
@@ -1,528 +0,0 @@
-// Copyright (c) 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/autofill/card_unmask_prompt_controller_impl.h"
-
-#include "base/bind.h"
-#include "base/message_loop/message_loop.h"
-#include "base/prefs/pref_service.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/test/histogram_tester.h"
-#include "chrome/browser/autofill/risk_util.h"
-#include "chrome/browser/ui/autofill/card_unmask_prompt_view.h"
-#include "chrome/test/base/chrome_render_view_host_test_harness.h"
-#include "components/autofill/core/browser/autofill_client.h"
-#include "components/autofill/core/browser/autofill_metrics.h"
-#include "components/autofill/core/browser/autofill_test_utils.h"
-#include "components/autofill/core/common/autofill_pref_names.h"
-#include "components/user_prefs/user_prefs.h"
-#include "content/public/browser/browser_context.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/test/test_utils.h"
-
-namespace autofill {
-
-using base::ASCIIToUTF16;
-
-class TestCardUnmaskDelegate : public CardUnmaskDelegate {
- public:
- TestCardUnmaskDelegate() : weak_factory_(this) {}
-
- virtual ~TestCardUnmaskDelegate() {}
-
- // CardUnmaskDelegate implementation.
- void OnUnmaskResponse(const UnmaskResponse& response) override {
- response_ = response;
- }
- void OnUnmaskPromptClosed() override {}
-
- const UnmaskResponse& response() { return response_; }
-
- base::WeakPtr<TestCardUnmaskDelegate> GetWeakPtr() {
- return weak_factory_.GetWeakPtr();
- }
-
- private:
- UnmaskResponse response_;
- base::WeakPtrFactory<TestCardUnmaskDelegate> weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(TestCardUnmaskDelegate);
-};
-
-class TestCardUnmaskPromptView : public CardUnmaskPromptView {
- public:
- void ControllerGone() override {}
- void DisableAndWaitForVerification() override {}
- void GotVerificationResult(const base::string16& error_message,
- bool allow_retry) override {}
-};
-
-class TestCardUnmaskPromptController : public CardUnmaskPromptControllerImpl {
- public:
- TestCardUnmaskPromptController(
- content::WebContents* contents,
- TestCardUnmaskPromptView* test_unmask_prompt_view,
- scoped_refptr<content::MessageLoopRunner> runner)
- : CardUnmaskPromptControllerImpl(contents,
- base::Bind(&LoadRiskData, 0, contents),
- user_prefs::UserPrefs::Get(contents->GetBrowserContext()), false),
- test_unmask_prompt_view_(test_unmask_prompt_view),
- can_store_locally_(true),
- runner_(runner),
- weak_factory_(this) {}
-
- CardUnmaskPromptView* CreateAndShowView() override {
- return test_unmask_prompt_view_;
- }
- void LoadRiskFingerprint() override {
- OnDidLoadRiskFingerprint("risk aversion");
- }
- bool CanStoreLocally() const override { return can_store_locally_; }
-
- void set_can_store_locally(bool can) { can_store_locally_ = can; }
-
- base::WeakPtr<TestCardUnmaskPromptController> GetWeakPtr() {
- return weak_factory_.GetWeakPtr();
- }
-
- private:
- TestCardUnmaskPromptView* test_unmask_prompt_view_;
- bool can_store_locally_;
- scoped_refptr<content::MessageLoopRunner> runner_;
- base::WeakPtrFactory<TestCardUnmaskPromptController> weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(TestCardUnmaskPromptController);
-};
-
-class CardUnmaskPromptControllerImplTest
- : public ChromeRenderViewHostTestHarness {
- public:
- CardUnmaskPromptControllerImplTest() {}
- ~CardUnmaskPromptControllerImplTest() override {}
-
- void SetUp() override {
- ChromeRenderViewHostTestHarness::SetUp();
- test_unmask_prompt_view_.reset(new TestCardUnmaskPromptView());
- controller_.reset(new TestCardUnmaskPromptController(
- web_contents(), test_unmask_prompt_view_.get(), runner_));
- delegate_.reset(new TestCardUnmaskDelegate());
- SetImportCheckboxState(false);
- }
-
- void TearDown() override {
- ChromeRenderViewHostTestHarness::TearDown();
- }
-
- void ShowPrompt() {
- controller_->ShowPrompt(test::GetMaskedServerCard(),
- delegate_->GetWeakPtr());
- }
-
- void ShowPromptAmex() {
- controller_->ShowPrompt(test::GetMaskedServerCardAmex(),
- delegate_->GetWeakPtr());
- }
-
- void ShowPromptAndSimulateResponse(bool should_store_pan) {
- ShowPrompt();
- controller_->OnUnmaskResponse(ASCIIToUTF16("444"),
- ASCIIToUTF16("01"),
- ASCIIToUTF16("2015"),
- should_store_pan);
- EXPECT_EQ(
- should_store_pan,
- user_prefs::UserPrefs::Get(web_contents()->GetBrowserContext())
- ->GetBoolean(prefs::kAutofillWalletImportStorageCheckboxState));
- }
-
- protected:
- void SetImportCheckboxState(bool value) {
- user_prefs::UserPrefs::Get(web_contents()->GetBrowserContext())
- ->SetBoolean(prefs::kAutofillWalletImportStorageCheckboxState, value);
- }
-
- // This member must outlive the controller.
- scoped_refptr<content::MessageLoopRunner> runner_;
-
- scoped_ptr<TestCardUnmaskPromptView> test_unmask_prompt_view_;
- scoped_ptr<TestCardUnmaskPromptController> controller_;
- scoped_ptr<TestCardUnmaskDelegate> delegate_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(CardUnmaskPromptControllerImplTest);
-};
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogShown) {
- base::HistogramTester histogram_tester;
- ShowPrompt();
-
- histogram_tester.ExpectUniqueSample(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_SHOWN, 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogClosedNoAttempts) {
- ShowPrompt();
- base::HistogramTester histogram_tester;
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_CLOSED_NO_ATTEMPTS, 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogClosedAbandonUnmasking) {
- ShowPromptAndSimulateResponse(false);
- base::HistogramTester histogram_tester;
-
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_CLOSED_ABANDON_UNMASKING, 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogClosedFailedToUnmaskRetriable) {
- ShowPromptAndSimulateResponse(false);
- controller_->OnVerificationResult(AutofillClient::TRY_AGAIN_FAILURE);
- base::HistogramTester histogram_tester;
-
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics
- ::UNMASK_PROMPT_CLOSED_FAILED_TO_UNMASK_RETRIABLE_FAILURE,
- 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogClosedFailedToUnmaskNonRetriable)
- {
- ShowPromptAndSimulateResponse(false);
- controller_->OnVerificationResult(AutofillClient::PERMANENT_FAILURE);
- base::HistogramTester histogram_tester;
-
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics
- ::UNMASK_PROMPT_CLOSED_FAILED_TO_UNMASK_NON_RETRIABLE_FAILURE,
- 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogUnmaskedCardFirstAttempt) {
- ShowPromptAndSimulateResponse(false);
- base::HistogramTester histogram_tester;
-
- controller_->OnVerificationResult(AutofillClient::SUCCESS);
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_UNMASKED_CARD_FIRST_ATTEMPT, 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogUnmaskedCardAfterFailure) {
- ShowPromptAndSimulateResponse(false);
- controller_->OnVerificationResult(AutofillClient::TRY_AGAIN_FAILURE);
- controller_->OnUnmaskResponse(ASCIIToUTF16("444"),
- ASCIIToUTF16("01"),
- ASCIIToUTF16("2015"),
- false /* should_store_pan */);
- base::HistogramTester histogram_tester;
-
- controller_->OnVerificationResult(AutofillClient::SUCCESS);
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_UNMASKED_CARD_AFTER_FAILED_ATTEMPTS, 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogSavedCardLocally) {
- ShowPromptAndSimulateResponse(true);
- base::HistogramTester histogram_tester;
-
- controller_->OnVerificationResult(AutofillClient::SUCCESS);
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_SAVED_CARD_LOCALLY, 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogDidOptIn) {
- SetImportCheckboxState(false);
- ShowPromptAndSimulateResponse(true);
- base::HistogramTester histogram_tester;
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_OPT_IN, 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogDidNotOptIn) {
- SetImportCheckboxState(false);
- ShowPromptAndSimulateResponse(false);
- base::HistogramTester histogram_tester;
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_NOT_OPT_IN, 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogDidOptOut) {
- SetImportCheckboxState(true);
- ShowPromptAndSimulateResponse(false);
- base::HistogramTester histogram_tester;
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_OPT_OUT, 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogDidNotOptOut) {
- SetImportCheckboxState(true);
- ShowPromptAndSimulateResponse(true);
- base::HistogramTester histogram_tester;
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_NOT_OPT_OUT, 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, DontLogForHiddenCheckbox) {
- controller_->set_can_store_locally(false);
- ShowPromptAndSimulateResponse(false);
- base::HistogramTester histogram_tester;
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_OPT_IN, 0);
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_NOT_OPT_IN, 0);
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_OPT_OUT, 0);
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.Events",
- AutofillMetrics::UNMASK_PROMPT_LOCAL_SAVE_DID_NOT_OPT_OUT, 0);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogDurationNoAttempts) {
- ShowPrompt();
- base::HistogramTester histogram_tester;
-
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.Duration", 1);
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.Duration.NoAttempts",
- 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogDurationAbandonUnmasking) {
- ShowPromptAndSimulateResponse(false);
- base::HistogramTester histogram_tester;
-
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.Duration", 1);
- histogram_tester.ExpectTotalCount(
- "Autofill.UnmaskPrompt.Duration.AbandonUnmasking", 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogDurationFailedToUnmaskRetriable) {
- ShowPromptAndSimulateResponse(false);
- controller_->OnVerificationResult(AutofillClient::TRY_AGAIN_FAILURE);
- base::HistogramTester histogram_tester;
-
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.Duration", 1);
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.Duration.Failure",
- 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest,
- LogDurationFailedToUnmaskNonRetriable) {
- ShowPromptAndSimulateResponse(false);
- controller_->OnVerificationResult(AutofillClient::PERMANENT_FAILURE);
- base::HistogramTester histogram_tester;
-
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.Duration", 1);
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.Duration.Failure",
- 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogDurationCardFirstAttempt) {
- ShowPromptAndSimulateResponse(false);
- base::HistogramTester histogram_tester;
-
- controller_->OnVerificationResult(AutofillClient::SUCCESS);
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.Duration", 1);
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.Duration.Success",
- 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest,
- LogDurationUnmaskedCardAfterFailure) {
- ShowPromptAndSimulateResponse(false);
- controller_->OnVerificationResult(AutofillClient::TRY_AGAIN_FAILURE);
- controller_->OnUnmaskResponse(
- base::ASCIIToUTF16("444"), base::ASCIIToUTF16("01"),
- base::ASCIIToUTF16("2015"), false /* should_store_pan */);
- base::HistogramTester histogram_tester;
-
- controller_->OnVerificationResult(AutofillClient::SUCCESS);
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.Duration", 1);
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.Duration.Success",
- 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogTimeBeforeAbandonUnmasking) {
- ShowPromptAndSimulateResponse(false);
- base::HistogramTester histogram_tester;
-
- controller_->OnUnmaskDialogClosed();
-
- histogram_tester.ExpectTotalCount(
- "Autofill.UnmaskPrompt.TimeBeforeAbandonUnmasking", 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogRealPanResultSuccess) {
- ShowPromptAndSimulateResponse(false);
- base::HistogramTester histogram_tester;
- controller_->OnVerificationResult(AutofillClient::SUCCESS);
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.GetRealPanResult",
- AutofillMetrics::GET_REAL_PAN_RESULT_SUCCESS, 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogRealPanTryAgainFailure) {
- ShowPromptAndSimulateResponse(false);
- base::HistogramTester histogram_tester;
-
- controller_->OnVerificationResult(AutofillClient::TRY_AGAIN_FAILURE);
-
- histogram_tester.ExpectBucketCount(
- "Autofill.UnmaskPrompt.GetRealPanResult",
- AutofillMetrics::GET_REAL_PAN_RESULT_TRY_AGAIN_FAILURE, 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, LogUnmaskingDurationResultSuccess) {
- ShowPromptAndSimulateResponse(false);
- base::HistogramTester histogram_tester;
-
- controller_->OnVerificationResult(AutofillClient::SUCCESS);
-
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.UnmaskingDuration",
- 1);
- histogram_tester.ExpectTotalCount(
- "Autofill.UnmaskPrompt.UnmaskingDuration.Success", 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest,
- LogUnmaskingDurationTryAgainFailure) {
- ShowPromptAndSimulateResponse(false);
- base::HistogramTester histogram_tester;
-
- controller_->OnVerificationResult(AutofillClient::TRY_AGAIN_FAILURE);
-
- histogram_tester.ExpectTotalCount("Autofill.UnmaskPrompt.UnmaskingDuration",
- 1);
- histogram_tester.ExpectTotalCount(
- "Autofill.UnmaskPrompt.UnmaskingDuration.Failure", 1);
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, CvcInputValidation) {
- struct CvcCase {
- const char* input;
- bool valid;
- // null when |valid| is false.
- const char* canonicalized_input;
- };
- CvcCase cvc_cases[] = {
- { "123", true, "123" },
- { "123 ", true, "123" },
- { " 1234 ", false },
- { "IOU", false },
- };
-
- ShowPrompt();
-
- for (size_t i = 0; i < arraysize(cvc_cases); ++i) {
- EXPECT_EQ(cvc_cases[i].valid,
- controller_->InputCvcIsValid(ASCIIToUTF16(cvc_cases[i].input)));
- if (!cvc_cases[i].valid)
- continue;
-
- controller_->OnUnmaskResponse(ASCIIToUTF16(cvc_cases[i].input),
- base::string16(), base::string16(), false);
- EXPECT_EQ(ASCIIToUTF16(cvc_cases[i].canonicalized_input),
- delegate_->response().cvc);
- }
-
- CvcCase cvc_cases_amex[] = {
- { "123", false },
- { "123 ", false },
- { "1234", true, "1234" },
- { "\t1234 ", true, "1234" },
- { " 1234", true, "1234" },
- { "IOU$", false },
- };
-
- ShowPromptAmex();
-
- for (size_t i = 0; i < arraysize(cvc_cases_amex); ++i) {
- EXPECT_EQ(
- cvc_cases_amex[i].valid,
- controller_->InputCvcIsValid(ASCIIToUTF16(cvc_cases_amex[i].input)));
- if (!cvc_cases_amex[i].valid)
- continue;
-
- controller_->OnUnmaskResponse(ASCIIToUTF16(cvc_cases_amex[i].input),
- base::string16(), base::string16(), false);
- EXPECT_EQ(ASCIIToUTF16(cvc_cases_amex[i].canonicalized_input),
- delegate_->response().cvc);
- }
-}
-
-TEST_F(CardUnmaskPromptControllerImplTest, ExpirationDateValidation) {
- struct {
- const char* input_month;
- const char* input_year;
- bool valid;
- } exp_cases[] = {
- {"01", "2040", true},
- {"1", "2040", true},
- {"1", "40", true},
- {"10", "40", true},
- {"01", "1940", false},
- {"13", "2040", false},
- };
-
- ShowPrompt();
-
- for (size_t i = 0; i < arraysize(exp_cases); ++i) {
- EXPECT_EQ(exp_cases[i].valid, controller_->InputExpirationIsValid(
- ASCIIToUTF16(exp_cases[i].input_month),
- ASCIIToUTF16(exp_cases[i].input_year)));
- }
-}
-
-} // namespace autofill
« no previous file with comments | « chrome/browser/ui/autofill/card_unmask_prompt_controller_impl.cc ('k') | chrome/browser/ui/autofill/card_unmask_prompt_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698