blob: 751fd9993d01d302db46c8bf9c959faec595f15d [file] [log] [blame]
// Copyright 2017 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 "ios/chrome/browser/payments/payment_request_unittest_base.h"
#include "base/memory/ptr_util.h"
#include "components/payments/core/payment_prefs.h"
#include "components/payments/core/payments_test_util.h"
#include "components/signin/core/browser/signin_manager.h"
#include "ios/chrome/browser/payments/payment_request_test_util.h"
#include "ios/chrome/browser/signin/fake_signin_manager_builder.h"
#include "ios/chrome/browser/signin/signin_manager_factory.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
PaymentRequestUnitTestBase::PaymentRequestUnitTestBase()
: pref_service_(payments::test::PrefServiceForTesting()) {}
PaymentRequestUnitTestBase::~PaymentRequestUnitTestBase() {}
void PaymentRequestUnitTestBase::SetUp() {
TestChromeBrowserState::Builder test_cbs_builder;
test_cbs_builder.AddTestingFactory(ios::SigninManagerFactory::GetInstance(),
&ios::BuildFakeSigninManager);
chrome_browser_state_ = test_cbs_builder.Build();
web_state_.SetBrowserState(chrome_browser_state_.get());
personal_data_manager_.SetTestingPrefService(pref_service_.get());
}
void PaymentRequestUnitTestBase::TearDown() {
personal_data_manager_.SetTestingPrefService(nullptr);
}
void PaymentRequestUnitTestBase::CreateTestPaymentRequest() {
payment_request_ = base::MakeUnique<payments::TestPaymentRequest>(
payment_request_test_util::CreateTestWebPaymentRequest(),
chrome_browser_state_.get(), &web_state_, &personal_data_manager_);
payment_request_->SetPrefService(pref_service_.get());
}
void PaymentRequestUnitTestBase::AddAutofillProfile(
autofill::AutofillProfile profile) {
profiles_.push_back(
base::MakeUnique<autofill::AutofillProfile>(std::move(profile)));
personal_data_manager_.AddTestingProfile(profiles_.back().get());
}
void PaymentRequestUnitTestBase::AddCreditCard(autofill::CreditCard card) {
cards_.push_back(base::MakeUnique<autofill::CreditCard>(std::move(card)));
personal_data_manager_.AddTestingCreditCard(cards_.back().get());
}
SigninManager* PaymentRequestUnitTestBase::GetSigninManager() {
return ios::SigninManagerFactory::GetForBrowserState(
chrome_browser_state_.get());
}