Chromium Code Reviews| Index: ios/chrome/browser/payments/credit_card_edit_view_controller_unittest.mm |
| diff --git a/ios/chrome/browser/payments/credit_card_edit_view_controller_unittest.mm b/ios/chrome/browser/payments/credit_card_edit_view_controller_unittest.mm |
| index 3324b133bf15943b026b00460304c52586d284d9..2cf5d7c9dfdee2f86f6c7c713e64e04c8a5705dd 100644 |
| --- a/ios/chrome/browser/payments/credit_card_edit_view_controller_unittest.mm |
| +++ b/ios/chrome/browser/payments/credit_card_edit_view_controller_unittest.mm |
| @@ -7,9 +7,7 @@ |
| #include "base/mac/foundation_util.h" |
| #include "base/memory/ptr_util.h" |
| #include "components/autofill/core/browser/field_types.h" |
| -#include "components/autofill/core/browser/test_personal_data_manager.h" |
| -#import "ios/chrome/browser/payments/credit_card_edit_mediator.h" |
| -#include "ios/chrome/browser/payments/payment_request.h" |
| +#import "ios/chrome/browser/payments/cells/payment_method_item.h" |
| #import "ios/chrome/browser/payments/payment_request_editor_field.h" |
| #include "ios/chrome/browser/payments/payment_request_test_util.h" |
| #import "ios/chrome/browser/ui/autofill/autofill_ui_type.h" |
| @@ -17,6 +15,7 @@ |
| #import "ios/chrome/browser/ui/collection_view/cells/collection_view_detail_item.h" |
| #import "ios/chrome/browser/ui/collection_view/cells/collection_view_footer_item.h" |
| #import "ios/chrome/browser/ui/collection_view/cells/collection_view_switch_item.h" |
| +#import "ios/chrome/browser/ui/collection_view/cells/test_utils.h" |
| #import "ios/chrome/browser/ui/collection_view/collection_view_controller_test.h" |
| #include "ios/web/public/payments/payment_request.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -26,13 +25,17 @@ |
| #endif |
| @interface TestCreditCardEditViewControllerMediator |
| - : CreditCardEditViewControllerMediator |
| + : NSObject<CreditCardEditViewControllerDataSource> |
| @end |
| @implementation TestCreditCardEditViewControllerMediator |
| -NSArray<EditorField*>* editorFields() { |
| +- (CollectionViewItem*)serverCardSummaryItem { |
| + return [[PaymentMethodItem alloc] init]; |
| +} |
| + |
| +- (NSArray<EditorField*>*)editorFields { |
| return @[ |
| [[EditorField alloc] initWithAutofillUIType:AutofillUITypeCreditCardNumber |
| label:@"Credit Card Number" |
| @@ -54,24 +57,25 @@ NSArray<EditorField*>* editorFields() { |
| ]; |
| } |
| +- (NSString*)billingAddressLabelForProfileWithGUID:(NSString*)profileGUID { |
| + return nil; |
| +} |
| + |
| +- (UIImage*)cardTypeIconFromCardNumber:(NSString*)cardNumber { |
| + return nil; |
| +} |
| + |
| @end |
| class PaymentRequestCreditCardEditViewControllerTest |
| : public CollectionViewControllerTest { |
| protected: |
| CollectionViewController* InstantiateController() override { |
| - payment_request_ = base::MakeUnique<PaymentRequest>( |
| - payment_request_test_util::CreateTestWebPaymentRequest(), |
| - &personal_data_manager_); |
| - |
| - CreditCardEditViewControllerMediator* mediator = |
| - [[CreditCardEditViewControllerMediator alloc] |
| - initWithPaymentRequest:payment_request_.get() |
| - creditCard:nil]; |
| + mediator_ = [[TestCreditCardEditViewControllerMediator alloc] init]; |
| CreditCardEditViewController* viewController = |
| [[CreditCardEditViewController alloc] init]; |
| - [viewController setDataSource:mediator]; |
| + [viewController setDataSource:mediator_]; |
| return viewController; |
| } |
| @@ -80,8 +84,7 @@ class PaymentRequestCreditCardEditViewControllerTest |
| controller()); |
| } |
| - autofill::TestPersonalDataManager personal_data_manager_; |
| - std::unique_ptr<PaymentRequest> payment_request_; |
| + TestCreditCardEditViewControllerMediator* mediator_; |
|
macourteau
2017/04/19 15:12:42
nit: = nullptr
Moe
2017/04/19 19:10:29
Done.
|
| }; |
| // Tests that the correct number of items are displayed after loading the model. |
| @@ -94,14 +97,17 @@ TEST_F(PaymentRequestCreditCardEditViewControllerTest, TestModel) { |
| [GetCreditCardEditViewController() loadModel]; |
| // There is one section for every textfield (there are four textfields in |
| - // total), one for the footer, and one for the billing address ID item. |
| - ASSERT_EQ(6, NumberOfSections()); |
| + // total), one for the server card summary section, one for the footer, and |
| + // one for the billing address ID item. |
| + ASSERT_EQ(7, NumberOfSections()); |
| - // The first four sections have only one item of the type AutofillEditItem. |
| + // The server card summary section is the first section and has one item of |
| + // the type PaymentMethodItem. |
| ASSERT_EQ(1U, static_cast<unsigned int>(NumberOfItemsInSection(0))); |
| id item = GetCollectionViewItem(0, 0); |
| - EXPECT_TRUE([item isMemberOfClass:[AutofillEditItem class]]); |
| + EXPECT_TRUE([item isMemberOfClass:[PaymentMethodItem class]]); |
| + // The next four sections have only one item of the type AutofillEditItem. |
| ASSERT_EQ(1U, static_cast<unsigned int>(NumberOfItemsInSection(1))); |
| item = GetCollectionViewItem(1, 0); |
| EXPECT_TRUE([item isMemberOfClass:[AutofillEditItem class]]); |
| @@ -114,10 +120,14 @@ TEST_F(PaymentRequestCreditCardEditViewControllerTest, TestModel) { |
| item = GetCollectionViewItem(3, 0); |
| EXPECT_TRUE([item isMemberOfClass:[AutofillEditItem class]]); |
| - // The billing address section contains one item which is of the type |
| - // CollectionViewDetailItem. |
| ASSERT_EQ(1U, static_cast<unsigned int>(NumberOfItemsInSection(4))); |
| item = GetCollectionViewItem(4, 0); |
| + EXPECT_TRUE([item isMemberOfClass:[AutofillEditItem class]]); |
| + |
| + // The billing address section contains one item which is of the type |
| + // CollectionViewDetailItem. |
| + ASSERT_EQ(1U, static_cast<unsigned int>(NumberOfItemsInSection(5))); |
| + item = GetCollectionViewItem(5, 0); |
| EXPECT_TRUE([item isMemberOfClass:[CollectionViewDetailItem class]]); |
| CollectionViewDetailItem* billing_address_item = item; |
| EXPECT_EQ(MDCCollectionViewCellAccessoryDisclosureIndicator, |
| @@ -125,8 +135,8 @@ TEST_F(PaymentRequestCreditCardEditViewControllerTest, TestModel) { |
| // The footer section contains one item which is of the type |
| // CollectionViewFooterItem. |
| - ASSERT_EQ(1U, static_cast<unsigned int>(NumberOfItemsInSection(5))); |
| - item = GetCollectionViewItem(5, 0); |
| + ASSERT_EQ(1U, static_cast<unsigned int>(NumberOfItemsInSection(6))); |
| + item = GetCollectionViewItem(6, 0); |
| EXPECT_TRUE([item isMemberOfClass:[CollectionViewFooterItem class]]); |
| } |
| @@ -143,12 +153,12 @@ TEST_F(PaymentRequestCreditCardEditViewControllerTest, |
| // There is an extra section containing a switch that allows the user to save |
| // the credit card locally. |
| - ASSERT_EQ(7, NumberOfSections()); |
| + ASSERT_EQ(8, NumberOfSections()); |
| // The switch section is the last section before the footer and has one item |
| // of the type CollectionViewSwitchItem. The switch is on by defualt. |
| - ASSERT_EQ(1U, static_cast<unsigned int>(NumberOfItemsInSection(5))); |
| - id item = GetCollectionViewItem(5, 0); |
| + ASSERT_EQ(1U, static_cast<unsigned int>(NumberOfItemsInSection(6))); |
| + id item = GetCollectionViewItem(6, 0); |
| EXPECT_TRUE([item isMemberOfClass:[CollectionViewSwitchItem class]]); |
| CollectionViewSwitchItem* switch_item = item; |
| EXPECT_EQ(YES, [switch_item isOn]); |