@@ -132,17 +132,31 @@ - (void)test07ThatLoadImageWithSDWebImageRefreshCachedWorks {
132
132
133
133
- (void )test08ThatImageTransformerWork {
134
134
XCTestExpectation *expectation = [self expectationWithDescription: @" Image transformer work" ];
135
- NSURL *url = [NSURL URLWithString: kTestJPEGURL ];
135
+ NSURL *url = [NSURL URLWithString: @" http://via.placeholder.com/80x60.png " ];
136
136
SDWebImageTestTransformer *transformer = [[SDWebImageTestTransformer alloc ] init ];
137
137
138
138
transformer.testImage = [[UIImage alloc ] initWithContentsOfFile: [self testJPEGPath ]];
139
- SDWebImageManager *manager = [[SDWebImageManager alloc ] initWithCache: [SDImageCache sharedImageCache ] loader: [SDWebImageDownloader sharedDownloader ]];
139
+ SDImageCache *cache = [[SDImageCache alloc ] initWithNamespace: @" Transformer" ];
140
+ SDWebImageManager *manager = [[SDWebImageManager alloc ] initWithCache: cache loader: SDWebImageDownloader.sharedDownloader];
141
+ NSString *key = [manager cacheKeyForURL: url];
142
+ NSString *transformedKey = [manager cacheKeyForURL: url context: @{SDWebImageContextImageTransformer : transformer}];
143
+
140
144
manager.transformer = transformer;
141
- [[SDImageCache sharedImageCache ] removeImageForKey: kTestJPEGURL withCompletion: ^{
142
- [manager loadImageWithURL: url options: SDWebImageTransformAnimatedImage | SDWebImageTransformVectorImage progress: nil completed: ^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {
143
- expect (image).equal (transformer.testImage );
144
- [expectation fulfill ];
145
- }];
145
+ [cache removeImageFromDiskForKey: key];
146
+ [cache removeImageFromMemoryForKey: key];
147
+ [cache removeImageFromDiskForKey: transformedKey];
148
+ [cache removeImageFromMemoryForKey: transformedKey];
149
+ // Test encode options with transformer (because data is not available)
150
+ SDImageCoderOptions *encodeOptions = @{SDImageCoderEncodeMaxPixelSize : @(CGSizeMake (40 , 30 ))};
151
+ [manager loadImageWithURL: url options: SDWebImageTransformAnimatedImage | SDWebImageTransformVectorImage | SDWebImageWaitStoreCache context: @{SDWebImageContextImageEncodeOptions : encodeOptions} progress: nil completed: ^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {
152
+ expect (image).equal (transformer.testImage );
153
+ // Query the encoded data again
154
+ NSData *encodedData = [cache diskImageDataForKey: transformedKey];
155
+ UIImage *encodedImage = [UIImage sd_imageWithData: encodedData];
156
+ CGSize encodedImageSize = encodedImage.size ;
157
+ expect (encodedImageSize.width ).equal (40 );
158
+ expect (encodedImageSize.height ).equal (30 );
159
+ [expectation fulfill ];
146
160
}];
147
161
148
162
[self waitForExpectationsWithCommonTimeout ];
0 commit comments