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

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

Issue 2908033002: [Payment Request] Refactors edit view controller (Closed)
Patch Set: Addressed comments Created 3 years, 7 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/credit_card_edit_view_controller_unittest.mm
diff --git a/ios/chrome/browser/ui/payments/credit_card_edit_view_controller_unittest.mm b/ios/chrome/browser/ui/payments/credit_card_edit_view_controller_unittest.mm
deleted file mode 100644
index 12f04c8b10245b1a60f345ec5279f0bb1790fcca..0000000000000000000000000000000000000000
--- a/ios/chrome/browser/ui/payments/credit_card_edit_view_controller_unittest.mm
+++ /dev/null
@@ -1,181 +0,0 @@
-// 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.
-
-#import "ios/chrome/browser/ui/payments/credit_card_edit_view_controller.h"
-
-#include "base/mac/foundation_util.h"
-#include "base/memory/ptr_util.h"
-#include "components/autofill/core/browser/field_types.h"
-#include "ios/chrome/browser/payments/payment_request_test_util.h"
-#import "ios/chrome/browser/ui/autofill/autofill_ui_type.h"
-#import "ios/chrome/browser/ui/autofill/cells/autofill_edit_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"
-#import "ios/chrome/browser/ui/payments/cells/accepted_payment_methods_item.h"
-#import "ios/chrome/browser/ui/payments/cells/payment_method_item.h"
-#import "ios/chrome/browser/ui/payments/cells/payments_selector_edit_item.h"
-#import "ios/chrome/browser/ui/payments/payment_request_edit_consumer.h"
-#import "ios/chrome/browser/ui/payments/payment_request_editor_field.h"
-#include "ios/web/public/payments/payment_request.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-@interface TestCreditCardEditViewControllerMediator
- : NSObject<CreditCardEditViewControllerDataSource>
-
-@property(nonatomic, weak) id<PaymentRequestEditConsumer> consumer;
-
-@end
-
-@implementation TestCreditCardEditViewControllerMediator
-
-@synthesize state = _state;
-@synthesize consumer = _consumer;
-
-- (CollectionViewItem*)headerItem {
- return [[PaymentMethodItem alloc] init];
-}
-
-- (BOOL)shouldHideBackgroundForHeaderItem {
- return NO;
-}
-
-- (void)setConsumer:(id<PaymentRequestEditConsumer>)consumer {
- _consumer = consumer;
- [self.consumer setEditorFields:@[
- [[EditorField alloc] initWithAutofillUIType:AutofillUITypeCreditCardNumber
- fieldType:EditorFieldTypeTextField
- label:@"Credit Card Number"
- value:@"4111111111111111" /* Visa */
- required:YES],
- [[EditorField alloc]
- initWithAutofillUIType:AutofillUITypeCreditCardHolderFullName
- fieldType:EditorFieldTypeTextField
- label:@"Cardholder Name"
- value:@"John Doe"
- required:YES],
- [[EditorField alloc] initWithAutofillUIType:AutofillUITypeCreditCardExpMonth
- fieldType:EditorFieldTypeTextField
- label:@"Expiration Month"
- value:@"12"
- required:YES],
- [[EditorField alloc] initWithAutofillUIType:AutofillUITypeCreditCardExpYear
- fieldType:EditorFieldTypeTextField
- label:@"Expiration Year"
- value:@"2090"
- required:YES],
- [[EditorField alloc]
- initWithAutofillUIType:AutofillUITypeCreditCardBillingAddress
- fieldType:EditorFieldTypeSelector
- label:@"Billing Address"
- value:@"12345"
- required:YES],
- ]];
-}
-
-- (UIImage*)cardTypeIconFromCardNumber:(NSString*)cardNumber {
- return nil;
-}
-
-@end
-
-class PaymentRequestCreditCardEditViewControllerTest
- : public CollectionViewControllerTest {
- protected:
- CollectionViewController* InstantiateController() override {
- CreditCardEditViewController* viewController =
- [[CreditCardEditViewController alloc] init];
- mediator_ = [[TestCreditCardEditViewControllerMediator alloc] init];
- [mediator_ setConsumer:viewController];
- [viewController setDataSource:mediator_];
- return viewController;
- }
-
- CreditCardEditViewController* GetCreditCardEditViewController() {
- return base::mac::ObjCCastStrict<CreditCardEditViewController>(
- controller());
- }
-
- TestCreditCardEditViewControllerMediator* mediator_ = nil;
-};
-
-// Tests that the correct number of items are displayed after loading the model.
-TEST_F(PaymentRequestCreditCardEditViewControllerTest, TestModel) {
- CreateController();
- CheckController();
-
- [mediator_ setState:EditViewControllerStateEdit];
- [GetCreditCardEditViewController() loadModel];
-
- // There is one section containing the credit card type icons for the accepted
- // payment methods. In addition to that, there is one section for every field
- // (there are five form fields in total), and finally one for the footer.
- ASSERT_EQ(7, NumberOfSections());
-
- // 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:[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]]);
-
- ASSERT_EQ(1U, static_cast<unsigned int>(NumberOfItemsInSection(2)));
- item = GetCollectionViewItem(2, 0);
- EXPECT_TRUE([item isMemberOfClass:[AutofillEditItem class]]);
-
- ASSERT_EQ(1U, static_cast<unsigned int>(NumberOfItemsInSection(3)));
- item = GetCollectionViewItem(3, 0);
- EXPECT_TRUE([item isMemberOfClass:[AutofillEditItem class]]);
-
- 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
- // PaymentsSelectorEditItem.
- ASSERT_EQ(1U, static_cast<unsigned int>(NumberOfItemsInSection(5)));
- item = GetCollectionViewItem(5, 0);
- EXPECT_TRUE([item isMemberOfClass:[PaymentsSelectorEditItem class]]);
- PaymentsSelectorEditItem* billing_address_item = item;
- EXPECT_EQ(MDCCollectionViewCellAccessoryDisclosureIndicator,
- billing_address_item.accessoryType);
-
- // The footer section contains one item which is of the type
- // CollectionViewFooterItem.
- ASSERT_EQ(1U, static_cast<unsigned int>(NumberOfItemsInSection(6)));
- item = GetCollectionViewItem(6, 0);
- EXPECT_TRUE([item isMemberOfClass:[CollectionViewFooterItem class]]);
-}
-
-// Tests that the correct number of items are displayed after loading the model,
-// when creating a new credit card.
-TEST_F(PaymentRequestCreditCardEditViewControllerTest,
- TestModelCreateNewCreditCard) {
- CreateController();
- CheckController();
-
- [mediator_ setState:EditViewControllerStateCreate];
- [GetCreditCardEditViewController() loadModel];
-
- // There is an extra section containing a switch that allows the user to save
- // the credit card locally.
- 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(6)));
- id item = GetCollectionViewItem(6, 0);
- EXPECT_TRUE([item isMemberOfClass:[CollectionViewSwitchItem class]]);
- CollectionViewSwitchItem* switch_item = item;
- EXPECT_EQ(YES, [switch_item isOn]);
-}

Powered by Google App Engine
This is Rietveld 408576698