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

Side by Side Diff: ios/chrome/browser/ui/payments/payment_request_coordinator_unittest.mm

Issue 2866793002: [Payment Request] Refactors PaymentRequestCoordinator. (Closed)
Patch Set: Addresses comments from mahmadi@ and marq@. 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/chrome/browser/ui/payments/payment_request_coordinator.h" 5 #import "ios/chrome/browser/ui/payments/payment_request_coordinator.h"
6 6
7 #include "base/mac/foundation_util.h" 7 #include "base/mac/foundation_util.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/test/ios/wait_util.h" 10 #include "base/test/ios/wait_util.h"
(...skipping 19 matching lines...) Expand all
30 #error "This file requires ARC support." 30 #error "This file requires ARC support."
31 #endif 31 #endif
32 32
33 @interface PaymentRequestCoordinatorDelegateMock< 33 @interface PaymentRequestCoordinatorDelegateMock<
34 PaymentRequestCoordinatorDelegate>:OCMockComplexTypeHelper 34 PaymentRequestCoordinatorDelegate>:OCMockComplexTypeHelper
35 @end 35 @end
36 36
37 @implementation PaymentRequestCoordinatorDelegateMock 37 @implementation PaymentRequestCoordinatorDelegateMock
38 38
39 typedef void (^mock_coordinator_cancel)(PaymentRequestCoordinator*); 39 typedef void (^mock_coordinator_cancel)(PaymentRequestCoordinator*);
40 typedef void (^mock_coordinator_confirm)(PaymentRequestCoordinator*, 40 typedef void (^mock_coordinator_complete)(PaymentRequestCoordinator*,
41 web::PaymentResponse); 41 PaymentRequest*,
42 const autofill::CreditCard&,
43 const base::string16&);
42 typedef void (^mock_coordinator_select_shipping_address)( 44 typedef void (^mock_coordinator_select_shipping_address)(
43 PaymentRequestCoordinator*, 45 PaymentRequestCoordinator*,
44 payments::PaymentAddress); 46 payments::PaymentAddress);
45 typedef void (^mock_coordinator_select_shipping_option)( 47 typedef void (^mock_coordinator_select_shipping_option)(
46 PaymentRequestCoordinator*, 48 PaymentRequestCoordinator*,
47 web::PaymentShippingOption); 49 web::PaymentShippingOption);
48 50
49 - (void)paymentRequestCoordinatorDidCancel: 51 - (void)paymentRequestCoordinatorDidCancel:
50 (PaymentRequestCoordinator*)coordinator { 52 (PaymentRequestCoordinator*)coordinator {
51 return static_cast<mock_coordinator_cancel>([self blockForSelector:_cmd])( 53 return static_cast<mock_coordinator_cancel>([self blockForSelector:_cmd])(
52 coordinator); 54 coordinator);
53 } 55 }
54 56
55 - (void)paymentRequestCoordinator:(PaymentRequestCoordinator*)coordinator 57 - (void)paymentRequestCoordinator:(PaymentRequestCoordinator*)coordinator
56 didConfirmWithPaymentResponse:(web::PaymentResponse)paymentResponse { 58 didCompletePaymentRequest:(PaymentRequest*)paymentRequest
57 return static_cast<mock_coordinator_confirm>([self blockForSelector:_cmd])( 59 card:(const autofill::CreditCard&)card
58 coordinator, paymentResponse); 60 verificationCode:(const base::string16&)verificationCode {
61 return static_cast<mock_coordinator_complete>([self blockForSelector:_cmd])(
62 coordinator, paymentRequest, card, verificationCode);
59 } 63 }
60 64
61 - (void)paymentRequestCoordinator:(PaymentRequestCoordinator*)coordinator 65 - (void)paymentRequestCoordinator:(PaymentRequestCoordinator*)coordinator
62 didSelectShippingAddress:(payments::PaymentAddress)shippingAddress { 66 didSelectShippingAddress:(payments::PaymentAddress)shippingAddress {
63 return static_cast<mock_coordinator_select_shipping_address>( 67 return static_cast<mock_coordinator_select_shipping_address>(
64 [self blockForSelector:_cmd])(coordinator, shippingAddress); 68 [self blockForSelector:_cmd])(coordinator, shippingAddress);
65 } 69 }
66 70
67 - (void)paymentRequestCoordinator:(PaymentRequestCoordinator*)coordinator 71 - (void)paymentRequestCoordinator:(PaymentRequestCoordinator*)coordinator
68 didSelectShippingOption:(web::PaymentShippingOption)shippingOption { 72 didSelectShippingOption:(web::PaymentShippingOption)shippingOption {
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 [scoped_key_window_.Get() setRootViewController:base_view_controller]; 144 [scoped_key_window_.Get() setRootViewController:base_view_controller];
141 145
142 PaymentRequestCoordinator* coordinator = [[PaymentRequestCoordinator alloc] 146 PaymentRequestCoordinator* coordinator = [[PaymentRequestCoordinator alloc]
143 initWithBaseViewController:base_view_controller]; 147 initWithBaseViewController:base_view_controller];
144 [coordinator setPaymentRequest:payment_request_.get()]; 148 [coordinator setPaymentRequest:payment_request_.get()];
145 149
146 id delegate = [OCMockObject 150 id delegate = [OCMockObject
147 mockForProtocol:@protocol(PaymentMethodSelectionCoordinatorDelegate)]; 151 mockForProtocol:@protocol(PaymentMethodSelectionCoordinatorDelegate)];
148 id delegate_mock([[PaymentRequestCoordinatorDelegateMock alloc] 152 id delegate_mock([[PaymentRequestCoordinatorDelegateMock alloc]
149 initWithRepresentedObject:delegate]); 153 initWithRepresentedObject:delegate]);
150 SEL selector = 154 SEL selector = @selector(paymentRequestCoordinator:didCompletePaymentRequest
marq (ping after 24h) 2017/05/09 15:40:12 Nit -- this formatting confuses me (although I'm s
macourteau 2017/05/09 15:48:36 That doesn't fit. Changed to something clearer.
151 @selector(paymentRequestCoordinator:didConfirmWithPaymentResponse:); 155 :card:verificationCode:);
152 [delegate_mock onSelector:selector 156 [delegate_mock onSelector:selector
153 callBlockExpectation:^(PaymentRequestCoordinator* callerCoordinator, 157 callBlockExpectation:^(PaymentRequestCoordinator* callerCoordinator,
154 web::PaymentResponse paymentResponse) { 158 PaymentRequest* paymentRequest,
155 EXPECT_EQ(base::ASCIIToUTF16("4111111111111111"), 159 const autofill::CreditCard& card,
156 paymentResponse.details.card_number); 160 const base::string16& verificationCode) {
157 EXPECT_EQ(base::ASCIIToUTF16("Test User"), 161 EXPECT_EQ(credit_card_, card);
158 paymentResponse.details.cardholder_name); 162 EXPECT_EQ(base::ASCIIToUTF16("123"), verificationCode);
159 EXPECT_EQ(base::ASCIIToUTF16("11"),
160 paymentResponse.details.expiry_month);
161 EXPECT_EQ(base::ASCIIToUTF16("2022"),
162 paymentResponse.details.expiry_year);
163 EXPECT_EQ(base::ASCIIToUTF16("123"),
164 paymentResponse.details.card_security_code);
165 EXPECT_EQ(coordinator, callerCoordinator); 163 EXPECT_EQ(coordinator, callerCoordinator);
166 }]; 164 }];
167 [coordinator setDelegate:delegate_mock]; 165 [coordinator setDelegate:delegate_mock];
168 166
169 // Call the card unmasking delegate method. 167 // Call the card unmasking delegate method.
170 [coordinator fullCardRequestDidSucceedWithCard:credit_card_ 168 [coordinator fullCardRequestDidSucceedWithCard:credit_card_
171 CVC:base::ASCIIToUTF16("123")]; 169 verificationCode:base::ASCIIToUTF16("123")];
172 } 170 }
173 171
174 // Tests that calling the ShippingAddressSelectionCoordinator delegate method 172 // Tests that calling the ShippingAddressSelectionCoordinator delegate method
175 // which notifies the coordinator about selection of a shipping address invokes 173 // which notifies the coordinator about selection of a shipping address invokes
176 // the corresponding coordinator delegate method with the expected information. 174 // the corresponding coordinator delegate method with the expected information.
177 TEST_F(PaymentRequestCoordinatorTest, DidSelectShippingAddress) { 175 TEST_F(PaymentRequestCoordinatorTest, DidSelectShippingAddress) {
178 UIViewController* base_view_controller = [[UIViewController alloc] init]; 176 UIViewController* base_view_controller = [[UIViewController alloc] init];
179 ScopedKeyWindow scoped_key_window_; 177 ScopedKeyWindow scoped_key_window_;
180 [scoped_key_window_.Get() setRootViewController:base_view_controller]; 178 [scoped_key_window_.Get() setRootViewController:base_view_controller];
181 179
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 [coordinator setDelegate:delegate_mock]; 276 [coordinator setDelegate:delegate_mock];
279 [coordinator setBrowserState:browser_state_.get()]; 277 [coordinator setBrowserState:browser_state_.get()];
280 278
281 [coordinator start]; 279 [coordinator start];
282 // Short delay to allow animation to complete. 280 // Short delay to allow animation to complete.
283 base::test::ios::SpinRunLoopWithMaxDelay(base::TimeDelta::FromSecondsD(1)); 281 base::test::ios::SpinRunLoopWithMaxDelay(base::TimeDelta::FromSecondsD(1));
284 282
285 // Call the controller delegate method. 283 // Call the controller delegate method.
286 [coordinator paymentRequestViewControllerDidCancel:nil]; 284 [coordinator paymentRequestViewControllerDidCancel:nil];
287 } 285 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698