forked from nytimes/NYTPhotoViewer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNYTScalingImageViewTests.m
97 lines (72 loc) · 3.14 KB
/
NYTScalingImageViewTests.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
//
// NYTScalingImageViewTests.m
// NYTPhotoViewer
//
// Created by Brian Capps on 2/26/15.
// Copyright (c) 2015 NYTimes. All rights reserved.
//
@import UIKit;
@import XCTest;
#import <NYTPhotoViewer/NYTScalingImageView.h>
#import <PINRemoteImage/PINRemoteImage.h>
#import <PINRemoteImage/PINAnimatedImageView.h>
@interface NYTScalingImageViewTests : XCTestCase
@property (nonatomic, strong) NSData *imageData;
@property (nonatomic, strong) NSString *gifPath;
@end
@implementation NYTScalingImageViewTests
#pragma mark - Helpers
- (NSString *)gifPath {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_gifPath = [[NSBundle bundleForClass:self.class] pathForResource:@"giphy" ofType:@"gif"];
});
return _gifPath;
}
- (NSData *)imageData {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_imageData = [NSData dataWithContentsOfFile:self.gifPath];
});
return _imageData;
}
#pragma mark - Tests
- (void)testImageInitializationAcceptsEmptyData {
XCTAssertNoThrow([[NYTScalingImageView alloc] initWithImage:[UIImage new] frame:CGRectZero]);
}
- (void)testDataInitializationAcceptsEmptyData {
XCTAssertNoThrow([[NYTScalingImageView alloc] initWithImageData:[NSData new] frame:CGRectZero]);
}
- (void)testImageViewExistsAfterImageInitialization {
NYTScalingImageView *scalingImageView = [[NYTScalingImageView alloc] initWithImage:[UIImage new] frame:CGRectZero];
XCTAssertNotNil(scalingImageView.imageView);
}
- (void)testImageViewExistsAfterDataInitialization {
NYTScalingImageView *scalingImageView = [[NYTScalingImageView alloc] initWithImageData:[NSData new] frame:CGRectZero];
XCTAssertNotNil(scalingImageView.imageView);
}
- (void)testImageInitializationSetsImage {
NYTScalingImageView *scalingImageView = [[NYTScalingImageView alloc] initWithImage:[UIImage new] frame:CGRectZero];
XCTAssertNotNil(scalingImageView.imageView.image);
}
- (void)testDataInitializationSetsImage {
NYTScalingImageView *scalingImageView = [[NYTScalingImageView alloc] initWithImageData:self.imageData frame:CGRectZero];
XCTAssertEqual(self.imageData, ((PINAnimatedImageView *)scalingImageView.imageView).animatedImage.data);
}
- (void)testUpdateImageUpdatesImage {
UIImage *image = [UIImage new];
NYTScalingImageView *scalingImageView = [[NYTScalingImageView alloc] initWithImage:image frame:CGRectZero];
[scalingImageView updateImage:image];
XCTAssertEqual(scalingImageView.imageView.image, image);
}
- (void)testUpdateImageDataUpdatesImage {
NSData *image2 = [NSData dataWithContentsOfFile:self.gifPath];
NYTScalingImageView *scalingImageView = [[NYTScalingImageView alloc] initWithImageData:self.imageData frame:CGRectZero];
[scalingImageView updateImageData:image2];
XCTAssertEqual(image2, ((PINAnimatedImageView *)scalingImageView.imageView).animatedImage.data);
}
- (void)testImageViewIsOfCorrectKindAfterInitialization {
NYTScalingImageView *scalingImageViewer = [[NYTScalingImageView alloc] initWithImageData:self.imageData frame:CGRectZero];
XCTAssertTrue([scalingImageViewer.imageView isKindOfClass:PINAnimatedImageView.class]);
}
@end