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

Unified Diff: ios/chrome/browser/ui/payments/payment_request_mediator_unittest.mm

Issue 2970013003: [Payment Request] Displays appropriate footer if first transaction completed (Closed)
Patch Set: Created 3 years, 5 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: 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..aac7db0ccc112a1d912a1057910d7d720594878b 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,9 @@
#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/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 +52,25 @@ class PaymentRequestMediatorTest : public PlatformTest {
protected:
PaymentRequestMediatorTest()
: autofill_profile_(autofill::test::GetFullProfile()),
- credit_card_(autofill::test::GetCreditCard()) {
+ credit_card_(autofill::test::GetCreditCard()),
+ pref_service_(autofill::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 +79,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 +428,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 +458,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)]);
}

Powered by Google App Engine
This is Rietveld 408576698