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

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: Addressed comments + rebase 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
« no previous file with comments | « ios/chrome/browser/ui/payments/payment_request_mediator.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)]);
}
« no previous file with comments | « ios/chrome/browser/ui/payments/payment_request_mediator.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698