Merge pull request #38 from SDWebImage/fix_max_file_size_passes

Update the example and test case for the max file size
This commit is contained in:
DreamPiggy 2020-04-07 20:20:28 +08:00 committed by GitHub
commit 26d4fb1a88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 1 deletions

View File

@ -42,8 +42,10 @@
NSLog(@"%@", @"Static WebP load success");
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData *webpData = [image sd_imageDataAsFormat:SDImageFormatWebP];
NSUInteger maxFileSize = 4096;
NSData *webpData = [SDImageWebPCoder.sharedCoder encodedDataWithImage:image format:SDImageFormatWebP options:@{SDImageCoderEncodeMaxFileSize : @(maxFileSize)}];
if (webpData) {
NSCAssert(webpData.length <= maxFileSize, @"WebP Encoding with max file size limit works");
NSLog(@"%@", @"WebP encoding success");
}
});

View File

@ -182,6 +182,20 @@ const int64_t kAsyncTestTimeout = 5;
XCTAssert(canvas == NULL);
}
- (void)test45WebPEncodingMaxFileSize {
NSURL *staticWebPURL = [[NSBundle bundleForClass:[self class]] URLForResource:@"TestImageStatic" withExtension:@"webp"];
NSData *data = [NSData dataWithContentsOfURL:staticWebPURL];
UIImage *image = [UIImage sd_imageWithWebPData:data];
NSData *dataWithNoLimit = [SDImageWebPCoder.sharedCoder encodedDataWithImage:image format:SDImageFormatWebP options:nil];
XCTAssertNotNil(dataWithNoLimit);
NSUInteger maxFileSize = 8192;
NSData *dataWithLimit = [SDImageWebPCoder.sharedCoder encodedDataWithImage:image format:SDImageFormatWebP options:@{SDImageCoderEncodeMaxFileSize : @(maxFileSize)}];
XCTAssertNotNil(dataWithLimit);
XCTAssertGreaterThan(dataWithNoLimit.length, dataWithLimit.length);
XCTAssertGreaterThan(dataWithNoLimit.length, maxFileSize);
XCTAssertLessThanOrEqual(dataWithLimit.length, maxFileSize);
}
@end
@implementation SDWebImageWebPCoderTests (Helpers)