| Index: ios/chrome/browser/ui/payments/payment_request_mediator_unittest.mm
|
| diff --git a/ios/chrome/browser/ui/payments/payment_request_mediator_unittest.mm b/ios/chrome/browser/ui/payments/payment_request_mediator_unittest.mm
|
| index 5c6f5aa976f629b1db6e2e2aae32e9e48420b053..ca07b069a27c01165829abc61d0e396731ce2a75 100644
|
| --- a/ios/chrome/browser/ui/payments/payment_request_mediator_unittest.mm
|
| +++ b/ios/chrome/browser/ui/payments/payment_request_mediator_unittest.mm
|
| @@ -14,7 +14,10 @@
|
| #include "components/autofill/core/browser/autofill_test_utils.h"
|
| #include "components/autofill/core/browser/credit_card.h"
|
| #include "components/autofill/core/browser/test_personal_data_manager.h"
|
| +#include "components/payments/core/payment_prefs.h"
|
| +#include "components/payments/core/payments_test_util.h"
|
| #include "components/payments/core/strings_util.h"
|
| +#include "components/prefs/pref_service.h"
|
| #include "components/signin/core/browser/signin_manager.h"
|
| #include "components/strings/grit/components_strings.h"
|
| #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
|
| @@ -50,23 +53,25 @@ class PaymentRequestMediatorTest : public PlatformTest {
|
| protected:
|
| PaymentRequestMediatorTest()
|
| : autofill_profile_(autofill::test::GetFullProfile()),
|
| - credit_card_(autofill::test::GetCreditCard()) {
|
| + credit_card_(autofill::test::GetCreditCard()),
|
| + pref_service_(payments::test::PrefServiceForTesting()) {
|
| // Add testing profile and credit card to autofill::TestPersonalDataManager.
|
| personal_data_manager_.AddTestingProfile(&autofill_profile_);
|
| credit_card_.set_billing_address_id(autofill_profile_.guid());
|
| personal_data_manager_.AddTestingCreditCard(&credit_card_);
|
|
|
| - payment_request_ = base::MakeUnique<TestPaymentRequest>(
|
| - payment_request_test_util::CreateTestWebPaymentRequest(),
|
| - &personal_data_manager_);
|
| -
|
| TestChromeBrowserState::Builder test_cbs_builder;
|
| test_cbs_builder.AddTestingFactory(ios::SigninManagerFactory::GetInstance(),
|
| &ios::BuildFakeSigninManager);
|
| chrome_browser_state_ = test_cbs_builder.Build();
|
| +
|
| + payment_request_ = base::MakeUnique<TestPaymentRequest>(
|
| + payment_request_test_util::CreateTestWebPaymentRequest(),
|
| + chrome_browser_state_.get(), &personal_data_manager_);
|
| + payment_request_->SetPrefService(pref_service_.get());
|
| +
|
| mediator_ = [[PaymentRequestMediator alloc]
|
| - initWithBrowserState:chrome_browser_state_.get()
|
| - paymentRequest:payment_request_.get()];
|
| + initWithPaymentRequest:payment_request_.get()];
|
| }
|
|
|
| PaymentRequestMediator* GetPaymentRequestMediator() { return mediator_; }
|
| @@ -75,6 +80,7 @@ class PaymentRequestMediatorTest : public PlatformTest {
|
|
|
| autofill::AutofillProfile autofill_profile_;
|
| autofill::CreditCard credit_card_;
|
| + std::unique_ptr<PrefService> pref_service_;
|
| autofill::TestPersonalDataManager personal_data_manager_;
|
| std::unique_ptr<TestPaymentRequest> payment_request_;
|
| std::unique_ptr<TestChromeBrowserState> chrome_browser_state_;
|
| @@ -423,6 +429,10 @@ TEST_F(PaymentRequestMediatorTest, TestContactInfoItem) {
|
|
|
| // Tests that the Footer item is created as expected.
|
| TEST_F(PaymentRequestMediatorTest, TestFooterItem) {
|
| + // Make sure the first transaction has not completed yet.
|
| + pref_service_->SetBoolean(payments::kPaymentsFirstTransactionCompleted,
|
| + false);
|
| +
|
| // Make sure the user is signed out.
|
| SigninManager* signin_manager = ios::SigninManagerFactory::GetForBrowserState(
|
| chrome_browser_state_.get());
|
| @@ -449,4 +459,24 @@ TEST_F(PaymentRequestMediatorTest, TestFooterItem) {
|
| isEqualToString:l10n_util::GetNSStringF(
|
| IDS_PAYMENTS_CARD_AND_ADDRESS_SETTINGS_SIGNED_IN,
|
| base::ASCIIToUTF16("username@example.com"))]);
|
| +
|
| + // Record that the first transaction completed.
|
| + pref_service_->SetBoolean(payments::kPaymentsFirstTransactionCompleted, true);
|
| +
|
| + item = [GetPaymentRequestMediator() footerItem];
|
| + footer_item = base::mac::ObjCCastStrict<CollectionViewFooterItem>(item);
|
| + EXPECT_TRUE([footer_item.text
|
| + isEqualToString:l10n_util::GetNSString(
|
| + IDS_PAYMENTS_CARD_AND_ADDRESS_SETTINGS)]);
|
| +
|
| + // Sign the user out.
|
| + signin_manager->SignOut(signin_metrics::SIGNOUT_TEST,
|
| + signin_metrics::SignoutDelete::IGNORE_METRIC);
|
| +
|
| + // The signed in state has no effect on the footer text if the first
|
| + // transaction has completed.
|
| + footer_item = base::mac::ObjCCastStrict<CollectionViewFooterItem>(item);
|
| + EXPECT_TRUE([footer_item.text
|
| + isEqualToString:l10n_util::GetNSString(
|
| + IDS_PAYMENTS_CARD_AND_ADDRESS_SETTINGS)]);
|
| }
|
|
|