add more application tests

This commit is contained in:
Ben Guo 2016-01-12 13:44:39 -05:00 committed by Jack Flintermann
parent 3444feb8fb
commit a0ff6441a5
3 changed files with 44 additions and 6 deletions

View File

@ -55,7 +55,48 @@
XCTAssertEqualObjects(self.sut.expirationField.text, @"10/99");
XCTAssertEqualObjects(self.sut.cvcField.text, cvc);
XCTAssertEqualObjects(self.sut.selectedField, self.sut.cvcField);
XCTAssertTrue([self.sut.cvcField isFirstResponder]);
XCTAssertTrue(self.sut.isValid);
}
- (void)testSetCard_partialNumberAndExpiration_whileEditingExpiration {
XCTAssertTrue([self.sut.expirationField becomeFirstResponder]);
STPCardParams *card = [STPCardParams new];
NSString *number = @"42";
card.number = number;
card.expMonth = 10;
card.expYear = 99;
[self.sut setCard:card];
NSData *imgData = UIImagePNGRepresentation(self.sut.brandImageView.image);
NSData *expectedImgData = UIImagePNGRepresentation([STPPaymentCardTextField brandImageForCardBrand:STPCardBrandVisa]);
XCTAssertTrue(self.sut.numberFieldShrunk);
XCTAssertTrue([expectedImgData isEqualToData:imgData]);
XCTAssertEqualObjects(self.sut.numberField.text, number);
XCTAssertEqualObjects(self.sut.expirationField.text, @"10/99");
XCTAssertEqual(self.sut.cvcField.text.length, (NSUInteger)0);
XCTAssertEqualObjects(self.sut.selectedField, self.sut.cvcField);
XCTAssertTrue([self.sut.cvcField isFirstResponder]);
XCTAssertFalse(self.sut.isValid);
}
- (void)testSetCard_number_whileEditingCVC {
XCTAssertTrue([self.sut.cvcField becomeFirstResponder]);
STPCardParams *card = [STPCardParams new];
NSString *number = @"4242424242424242";
card.number = number;
[self.sut setCard:card];
NSData *imgData = UIImagePNGRepresentation(sut.brandImageView.image);
NSData *expectedImgData = UIImagePNGRepresentation([STPPaymentCardTextField brandImageForCardBrand:STPCardBrandVisa]);
XCTAssertTrue(self.sut.numberFieldShrunk);
XCTAssertTrue([expectedImgData isEqualToData:imgData]);
XCTAssertEqualObjects(self.sut.numberField.text, number);
XCTAssertEqual(self.sut.expirationField.text.length, (NSUInteger)0);
XCTAssertEqual(self.sut.cvcField.text.length, (NSUInteger)0);
XCTAssertEqualObjects(self.sut.selectedField, self.sut.expirationField);
XCTAssertTrue([self.sut.expirationField isFirstResponder]);
XCTAssertFalse(sut.isValid);
}
@end

View File

@ -418,11 +418,8 @@ CGFloat const STPPaymentCardTextFieldDefaultPadding = 10;
}
[self setText:card.cvc inField:STPCardFieldTypeCVC];
if (![self isFirstResponder]) {
BOOL shrinkNumberField = ((expirationPresent || card.cvc.length) && !card.number.length) ||
[self shouldShrinkNumberField];
[self setNumberFieldShrunk:shrinkNumberField animated:NO completion:nil];
}
BOOL shrinkNumberField = (expirationPresent || card.cvc.length) || [self shouldShrinkNumberField];
[self setNumberFieldShrunk:shrinkNumberField animated:NO completion:nil];
// update the card image, falling back to the number field image if not editing
if ([self.expirationField isFirstResponder]) {

View File

@ -151,7 +151,7 @@
NSData *imgData = UIImagePNGRepresentation(sut.brandImageView.image);
NSData *expectedImgData = UIImagePNGRepresentation([STPPaymentCardTextField brandImageForCardBrand:STPCardBrandVisa]);
XCTAssertFalse(sut.numberFieldShrunk);
XCTAssertTrue(sut.numberFieldShrunk);
XCTAssertTrue([expectedImgData isEqualToData:imgData]);
XCTAssertEqualObjects(sut.numberField.text, number);
XCTAssertEqualObjects(sut.expirationField.text, @"10/99");