#include "components/autofill/core/browser/payments/credit_card_cvc_authenticator.h"
#include <stddef.h>
#include <algorithm>
#include <memory>
#include <string>
#include <tuple>
#include <utility>
#include "base/base64.h"
#include "base/command_line.h"
#include "base/feature_list.h"
#include "base/memory/ref_counted.h"
#include "base/metrics/field_trial.h"
#include "base/metrics/metrics_hashes.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/test/metrics/histogram_tester.h"
#include "base/test/scoped_feature_list.h"
#include "base/test/task_environment.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "components/autofill/core/browser/autocomplete_history_manager.h"
#include "components/autofill/core/browser/autofill_test_utils.h"
#include "components/autofill/core/browser/data_model/autofill_profile.h"
#include "components/autofill/core/browser/data_model/credit_card.h"
#include "components/autofill/core/browser/metrics/form_events/form_events.h"
#include "components/autofill/core/browser/metrics/payments/card_unmask_authentication_metrics.h"
#include "components/autofill/core/browser/payments/full_card_request.h"
#include "components/autofill/core/browser/payments/payments_autofill_client.h"
#include "components/autofill/core/browser/payments/test_authentication_requester.h"
#include "components/autofill/core/browser/payments/test_payments_network_interface.h"
#include "components/autofill/core/browser/personal_data_manager.h"
#include "components/autofill/core/browser/test_autofill_client.h"
#include "components/autofill/core/browser/test_autofill_clock.h"
#include "components/autofill/core/browser/test_autofill_driver.h"
#include "components/autofill/core/browser/test_personal_data_manager.h"
#include "components/autofill/core/browser/validation.h"
#include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
#include "components/autofill/core/common/autofill_clock.h"
#include "components/autofill/core/common/autofill_features.h"
#include "components/autofill/core/common/autofill_payments_features.h"
#include "components/autofill/core/common/autofill_prefs.h"
#include "components/autofill/core/common/autofill_switches.h"
#include "components/autofill/core/common/autofill_util.h"
#include "components/prefs/pref_service.h"
#include "components/security_state/core/security_state.h"
#include "components/strings/grit/components_strings.h"
#include "components/sync/test/test_sync_service.h"
#include "components/variations/scoped_variations_ids_provider.h"
#include "components/version_info/channel.h"
#include "net/base/url_util.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/geometry/rect.h"
#include "url/gurl.h"
namespace autofill {
namespace {
const char kTestGUID[] = …;
const char kTestNumber[] = …;
const char16_t kTestNumber16[] = …;
}
class CreditCardCvcAuthenticatorTest : public testing::Test { … };
TEST_F(CreditCardCvcAuthenticatorTest, AuthenticateServerCardSuccess) { … }
TEST_F(CreditCardCvcAuthenticatorTest,
AuthenticateServerCardWithContextTokenSuccess) { … }
TEST_F(CreditCardCvcAuthenticatorTest, AuthenticateVirtualCardSuccess) { … }
TEST_F(CreditCardCvcAuthenticatorTest, AuthenticateVirtualCard_InvalidURL) { … }
TEST_F(CreditCardCvcAuthenticatorTest, AuthenticateNetworkError) { … }
TEST_F(CreditCardCvcAuthenticatorTest, AuthenticatePermanentFailure) { … }
TEST_F(CreditCardCvcAuthenticatorTest, AuthenticateTryAgainFailure) { … }
TEST_F(CreditCardCvcAuthenticatorTest, AuthenticatePromptClosed) { … }
TEST_F(CreditCardCvcAuthenticatorTest, VirtualCardAuthenticatePromptClosed) { … }
}