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

Side by Side Diff: ios/showcase/payments/sc_payments_editor_egtest.mm

Issue 2876603005: [Payment Request] Refactors the 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 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 <EarlGrey/EarlGrey.h> 5 #import <EarlGrey/EarlGrey.h>
6 6
7 #import "base/mac/foundation_util.h" 7 #import "base/mac/foundation_util.h"
8 #include "components/strings/grit/components_strings.h" 8 #include "components/strings/grit/components_strings.h"
9 #import "ios/chrome/browser/ui/autofill/autofill_edit_accessory_view.h" 9 #import "ios/chrome/browser/ui/autofill/autofill_edit_accessory_view.h"
10 #import "ios/chrome/browser/ui/payments/payment_request_edit_view_controller.h" 10 #import "ios/chrome/browser/ui/payments/payment_request_edit_view_controller.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 @"Expected first responder to be of kind %@, got %@.", 57 @"Expected first responder to be of kind %@, got %@.",
58 [UITextField class], [firstResponder class]); 58 [UITextField class], [firstResponder class]);
59 UITextField* textField = 59 UITextField* textField =
60 base::mac::ObjCCastStrict<UITextField>(firstResponder); 60 base::mac::ObjCCastStrict<UITextField>(firstResponder);
61 GREYAssertTrue( 61 GREYAssertTrue(
62 [[textField accessibilityIdentifier] isEqualToString:accessibilityID], 62 [[textField accessibilityIdentifier] isEqualToString:accessibilityID],
63 @"Expected accessibility identifier to be %@, got %@.", accessibilityID, 63 @"Expected accessibility identifier to be %@, got %@.", accessibilityID,
64 [textField accessibilityIdentifier]); 64 [textField accessibilityIdentifier]);
65 } 65 }
66 66
67 // Returns the GREYMatcher for the UIAlertView's message displayed for a call
68 // that notifies the delegate of selection of a field.
69 id<GREYMatcher> UIAlertViewMessageForDelegateCallWithArgument(
70 NSString* argument) {
71 return grey_allOf(
72 grey_text([NSString
73 stringWithFormat:@"paymentRequestEditViewController:"
74 @"kPaymentRequestEditCollectionViewAccessibilityID "
75 @"didSelectField:%@",
76 argument]),
77 grey_sufficientlyVisible(), nil);
78 }
79
67 } // namespace 80 } // namespace
68 81
69 // Tests for the payment request editor view controller. 82 // Tests for the payment request editor view controller.
70 @interface SCPaymentsEditorTestCase : ShowcaseTestCase 83 @interface SCPaymentsEditorTestCase : ShowcaseTestCase
71 @end 84 @end
72 85
73 @implementation SCPaymentsEditorTestCase 86 @implementation SCPaymentsEditorTestCase
74 87
75 - (void)setUp { 88 - (void)setUp {
76 [super setUp]; 89 [super setUp];
77 Open(@"PaymentRequestEditViewController"); 90 Open(@"PaymentRequestEditViewController");
78 } 91 }
79 92
80 - (void)tearDown { 93 - (void)tearDown {
81 Close(); 94 Close();
82 [super tearDown]; 95 [super tearDown];
83 } 96 }
84 97
85 // Tests if expected labels and textfields exist and have the expected values. 98 // Tests if expected labels and fields exist and have the expected values.
86 - (void)testVerifyLabelsAndTextFields { 99 - (void)testVerifyLabelsAndFields {
87 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Name*")] 100 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Name*")]
88 assertWithMatcher:grey_notNil()]; 101 assertWithMatcher:grey_notNil()];
89 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Name_textField")] 102 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Name_textField")]
90 assertWithMatcher:grey_text(@"John Doe")]; 103 assertWithMatcher:grey_text(@"John Doe")];
91 104
105 [[EarlGrey
106 selectElementWithMatcher:grey_allOf(grey_accessibilityLabel(@"Country*"),
107 grey_accessibilityValue(@"Canada"),
108 nil)]
109 assertWithMatcher:grey_notNil()];
110
92 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Address*")] 111 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Address*")]
93 assertWithMatcher:grey_notNil()]; 112 assertWithMatcher:grey_notNil()];
94 [[EarlGrey 113 [[EarlGrey
95 selectElementWithMatcher:grey_accessibilityID(@"Address_textField")] 114 selectElementWithMatcher:grey_accessibilityID(@"Address_textField")]
96 assertWithMatcher:grey_text(@"")]; 115 assertWithMatcher:grey_text(@"")];
97 116
98 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Postal Code")] 117 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Postal Code")]
99 assertWithMatcher:grey_notNil()]; 118 assertWithMatcher:grey_notNil()];
100 [[EarlGrey 119 [[EarlGrey
101 selectElementWithMatcher:grey_accessibilityID(@"Postal Code_textField")] 120 selectElementWithMatcher:grey_accessibilityID(@"Postal Code_textField")]
102 assertWithMatcher:grey_text(@"")]; 121 assertWithMatcher:grey_text(@"")];
103 } 122 }
104 123
124 // Tests if tapping the selector field notifies the delegate.
125 - (void)testVerifyTappingSelectorFieldNotifiesDelegate {
126 // Tap the selector field.
127 [[EarlGrey
128 selectElementWithMatcher:grey_allOf(grey_accessibilityLabel(@"Country*"),
129 grey_accessibilityValue(@"Canada"),
130 nil)] performAction:grey_tap()];
131
132 // Confirm the delegate is informed.
133 [[EarlGrey
134 selectElementWithMatcher:UIAlertViewMessageForDelegateCallWithArgument(
135 @"Label: Country, Value: CAN")]
136 assertWithMatcher:grey_notNil()];
137 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(
138 @"protocol_alerter_done")]
139 performAction:grey_tap()];
140 }
141
105 // Tests whether tapping the input accessory view's close button dismisses the 142 // Tests whether tapping the input accessory view's close button dismisses the
106 // input accessory view. 143 // input accessory view.
107 - (void)testInputAccessoryViewCloseButton { 144 - (void)testInputAccessoryViewCloseButton {
108 if (IsIPadIdiom()) { 145 if (IsIPadIdiom()) {
109 // TODO(crbug.com/602666): Investigate why the close button is hidden on 146 // TODO(crbug.com/602666): Investigate why the close button is hidden on
110 // iPad. 147 // iPad.
111 EARL_GREY_TEST_DISABLED( 148 EARL_GREY_TEST_DISABLED(
112 @"Input accessory view's close button is hidden on iPad"); 149 @"Input accessory view's close button is hidden on iPad");
113 } 150 }
114 151
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 [[EarlGrey selectElementWithMatcher:InputAccessoryViewPreviousButton()] 200 [[EarlGrey selectElementWithMatcher:InputAccessoryViewPreviousButton()]
164 assertWithMatcher:grey_enabled()]; 201 assertWithMatcher:grey_enabled()];
165 // Assert the input accessory view's next button is enabled and tap it. 202 // Assert the input accessory view's next button is enabled and tap it.
166 [[[EarlGrey selectElementWithMatcher:InputAccessoryViewNextButton()] 203 [[[EarlGrey selectElementWithMatcher:InputAccessoryViewNextButton()]
167 assertWithMatcher:grey_enabled()] performAction:grey_tap()]; 204 assertWithMatcher:grey_enabled()] performAction:grey_tap()];
168 205
169 // Assert an error message is showing because the address textfield is 206 // Assert an error message is showing because the address textfield is
170 // required. 207 // required.
171 [[EarlGrey selectElementWithMatcher:grey_accessibilityID( 208 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
172 kWarningMessageAccessibilityID)] 209 kWarningMessageAccessibilityID)]
173 assertWithMatcher:grey_accessibilityLabel(l10n_util::GetNSString( 210 assertWithMatcher:grey_accessibilityLabel(@"Field is required")];
174 IDS_PAYMENTS_FIELD_REQUIRED_VALIDATION_MESSAGE))];
175 211
176 // Assert the postal code textfield is focused. 212 // Assert the postal code textfield is focused.
177 AssertTextFieldWithAccessibilityIDIsFirstResponder(@"Postal Code_textField"); 213 AssertTextFieldWithAccessibilityIDIsFirstResponder(@"Postal Code_textField");
178 214
179 // Assert the input accessory view's next button is disabled. 215 // Assert the input accessory view's next button is disabled.
180 [[EarlGrey selectElementWithMatcher:InputAccessoryViewNextButton()] 216 [[EarlGrey selectElementWithMatcher:InputAccessoryViewNextButton()]
181 assertWithMatcher:grey_not(grey_enabled())]; 217 assertWithMatcher:grey_not(grey_enabled())];
182 // Assert the input accessory view's previous button is enabled and tap it. 218 // Assert the input accessory view's previous button is enabled and tap it.
183 [[[EarlGrey selectElementWithMatcher:InputAccessoryViewPreviousButton()] 219 [[[EarlGrey selectElementWithMatcher:InputAccessoryViewPreviousButton()]
184 assertWithMatcher:grey_enabled()] performAction:grey_tap()]; 220 assertWithMatcher:grey_enabled()] performAction:grey_tap()];
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 283
248 // Expect non of the textfields to be focused. 284 // Expect non of the textfields to be focused.
249 UIResponder* firstResponder = 285 UIResponder* firstResponder =
250 [[UIApplication sharedApplication].keyWindow firstResponder]; 286 [[UIApplication sharedApplication].keyWindow firstResponder];
251 GREYAssertFalse([firstResponder isKindOfClass:[UITextField class]], 287 GREYAssertFalse([firstResponder isKindOfClass:[UITextField class]],
252 @"Expected first responder not to be of kind %@.", 288 @"Expected first responder not to be of kind %@.",
253 [UITextField class]); 289 [UITextField class]);
254 } 290 }
255 291
256 @end 292 @end
OLDNEW
« no previous file with comments | « ios/showcase/payments/sc_payments_editor_coordinator.mm ('k') | ios/showcase/payments/sc_payments_picker_coordinator.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698