Skip to content

Commit 8bae908

Browse files
committed
Added the test case testWebPDecodeDoesNotTriggerCACopyImage
1 parent 4b45cdd commit 8bae908

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed
92.8 KB
Binary file not shown.

Tests/SDWebImageWebPCoderTests.m

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,18 @@ - (void)test45WebPEncodingMaxFileSize {
218218
XCTAssertLessThanOrEqual(dataWithLimit.length, maxFileSize);
219219
}
220220

221+
- (void)testWebPDecodeDoesNotTriggerCACopyImage {
222+
NSURL *staticWebPURL = [[NSBundle bundleForClass:[self class]] URLForResource:@"TestColorspaceStatic" withExtension:@"webp"];
223+
NSData *data = [NSData dataWithContentsOfURL:staticWebPURL];
224+
UIImage *image = [SDImageWebPCoder.sharedCoder decodedImageWithData:data options:@{SDImageCoderDecodeThumbnailPixelSize: @(CGSizeMake(1023, 680))}]; // 1023 * 4 need aligned to 4096
225+
CGImageRef cgImage = [image CGImage];
226+
size_t bytesPerRow = CGImageGetBytesPerRow(cgImage);
227+
XCTAssertEqual(bytesPerRow, 4096);
228+
CGColorSpaceRef colorspace = CGImageGetColorSpace(cgImage);
229+
NSString *colorspaceName = (__bridge_transfer NSString *)CGColorSpaceCopyName(colorspace);
230+
XCTAssertEqual(colorspaceName, (__bridge NSString *)kCGColorSpaceSRGB, @"Color space is not sRGB");
231+
}
232+
221233
- (void)testEncodingSettings {
222234
WebPConfig config;
223235
WebPConfigPreset(&config, WEBP_PRESET_DEFAULT, 0.2);

Tests/SDWebImageWebPCoderTests.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
0EF5B6264833B7BC20894578 /* Pods_SDWebImageWebPCoderTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 46F21AD7D1692EBAC4D0FF33 /* Pods_SDWebImageWebPCoderTests.framework */; };
1111
3219F3B2228B0453003822A6 /* TestImageBlendAnimated.webp in Resources */ = {isa = PBXBuildFile; fileRef = 3219F3B1228B0453003822A6 /* TestImageBlendAnimated.webp */; };
1212
325E268E25C82BE1000B807B /* TestImageGrayscale.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 325E268D25C82BE1000B807B /* TestImageGrayscale.jpg */; };
13+
326420312A5D53E300EE3E46 /* TestColorspaceStatic.webp in Resources */ = {isa = PBXBuildFile; fileRef = 326420302A5D53E300EE3E46 /* TestColorspaceStatic.webp */; };
1314
808C918E213FD131004B0F7C /* SDWebImageWebPCoderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 808C918D213FD131004B0F7C /* SDWebImageWebPCoderTests.m */; };
1415
808C919C213FD2B2004B0F7C /* TestImageStatic.webp in Resources */ = {isa = PBXBuildFile; fileRef = 808C919A213FD2B2004B0F7C /* TestImageStatic.webp */; };
1516
808C919D213FD2B2004B0F7C /* TestImageAnimated.webp in Resources */ = {isa = PBXBuildFile; fileRef = 808C919B213FD2B2004B0F7C /* TestImageAnimated.webp */; };
@@ -19,6 +20,7 @@
1920
28D8AA3D3015E075692FD3E3 /* Pods-SDWebImageWebPCoderTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageWebPCoderTests.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-SDWebImageWebPCoderTests/Pods-SDWebImageWebPCoderTests.debug.xcconfig"; sourceTree = "<group>"; };
2021
3219F3B1228B0453003822A6 /* TestImageBlendAnimated.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = TestImageBlendAnimated.webp; sourceTree = "<group>"; };
2122
325E268D25C82BE1000B807B /* TestImageGrayscale.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = TestImageGrayscale.jpg; sourceTree = "<group>"; };
23+
326420302A5D53E300EE3E46 /* TestColorspaceStatic.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = TestColorspaceStatic.webp; sourceTree = "<group>"; };
2224
46F21AD7D1692EBAC4D0FF33 /* Pods_SDWebImageWebPCoderTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImageWebPCoderTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
2325
808C918B213FD130004B0F7C /* SDWebImageWebPCoderTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SDWebImageWebPCoderTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
2426
808C918D213FD131004B0F7C /* SDWebImageWebPCoderTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDWebImageWebPCoderTests.m; sourceTree = "<group>"; };
@@ -80,6 +82,7 @@
8082
808C9199213FD2B2004B0F7C /* Images */ = {
8183
isa = PBXGroup;
8284
children = (
85+
326420302A5D53E300EE3E46 /* TestColorspaceStatic.webp */,
8386
325E268D25C82BE1000B807B /* TestImageGrayscale.jpg */,
8487
808C919A213FD2B2004B0F7C /* TestImageStatic.webp */,
8588
808C919B213FD2B2004B0F7C /* TestImageAnimated.webp */,
@@ -157,6 +160,7 @@
157160
3219F3B2228B0453003822A6 /* TestImageBlendAnimated.webp in Resources */,
158161
808C919D213FD2B2004B0F7C /* TestImageAnimated.webp in Resources */,
159162
808C919C213FD2B2004B0F7C /* TestImageStatic.webp in Resources */,
163+
326420312A5D53E300EE3E46 /* TestColorspaceStatic.webp in Resources */,
160164
325E268E25C82BE1000B807B /* TestImageGrayscale.jpg in Resources */,
161165
);
162166
runOnlyForDeploymentPostprocessing = 0;
@@ -377,6 +381,7 @@
377381
"$(inherited)",
378382
);
379383
INFOPLIST_FILE = Info.plist;
384+
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
380385
PRODUCT_BUNDLE_IDENTIFIER = org.SDWebImage.SDWebImageWebPCoderTests;
381386
PRODUCT_NAME = "$(TARGET_NAME)";
382387
};
@@ -387,6 +392,7 @@
387392
baseConfigurationReference = D92E6791BF088D1A101E670E /* Pods-SDWebImageWebPCoderTests.release.xcconfig */;
388393
buildSettings = {
389394
INFOPLIST_FILE = Info.plist;
395+
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
390396
PRODUCT_BUNDLE_IDENTIFIER = org.SDWebImage.SDWebImageWebPCoderTests;
391397
PRODUCT_NAME = "$(TARGET_NAME)";
392398
};

0 commit comments

Comments
 (0)