Переглянути джерело

Added tests for the scale down decoding + test image and updated a bit the other decoder tests

Bogdan Poplauschi 9 роки тому
батько
коміт
8d1a0ae

+ 4 - 0
Tests/SDWebImage Tests.xcodeproj/project.pbxproj

@@ -14,6 +14,7 @@
 		433BBBBB1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */; };
 		4369C1D11D97F80F007E863A /* SDWebImagePrefetcherTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4369C1D01D97F80F007E863A /* SDWebImagePrefetcherTests.m */; };
 		4369C2741D9804B1007E863A /* SDCategoriesTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4369C2731D9804B1007E863A /* SDCategoriesTests.m */; };
+		43828A451DA67F9900000E62 /* TestImageLarge.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 43828A441DA67F9900000E62 /* TestImageLarge.jpg */; };
 		53F0240D24D359127872F512 /* Pods_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DAAA77E3CA7387F702040D9 /* Pods_Tests.framework */; };
 		5F7F38AD1AE2A77A00B0E330 /* TestImage.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */; };
 		DA248D57195472AA00390AB0 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA248D56195472AA00390AB0 /* XCTest.framework */; };
@@ -34,6 +35,7 @@
 		433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = MonochromeTestImage.jpg; sourceTree = "<group>"; };
 		4369C1D01D97F80F007E863A /* SDWebImagePrefetcherTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDWebImagePrefetcherTests.m; sourceTree = "<group>"; };
 		4369C2731D9804B1007E863A /* SDCategoriesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDCategoriesTests.m; sourceTree = "<group>"; };
+		43828A441DA67F9900000E62 /* TestImageLarge.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = TestImageLarge.jpg; sourceTree = "<group>"; };
 		5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = TestImage.jpg; sourceTree = "<group>"; };
 		700B00151041D7EE118B1ABD /* Pods-Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Tests/Pods-Tests.debug.xcconfig"; sourceTree = "<group>"; };
 		A0085854E7D88C98F2F6C9FC /* Pods-Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Tests/Pods-Tests.release.xcconfig"; sourceTree = "<group>"; };
@@ -108,6 +110,7 @@
 				433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */,
 				433BBBB61D7EF8200086B6E9 /* TestImage.gif */,
 				5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */,
+				43828A441DA67F9900000E62 /* TestImageLarge.jpg */,
 				433BBBB81D7EF8260086B6E9 /* TestImage.png */,
 				DA248D5D195472AA00390AB0 /* Supporting Files */,
 				DA248D68195475D800390AB0 /* SDImageCacheTests.m */,
@@ -185,6 +188,7 @@
 			buildActionMask = 2147483647;
 			files = (
 				5F7F38AD1AE2A77A00B0E330 /* TestImage.jpg in Resources */,
+				43828A451DA67F9900000E62 /* TestImageLarge.jpg in Resources */,
 				433BBBB71D7EF8200086B6E9 /* TestImage.gif in Resources */,
 				DA248D61195472AA00390AB0 /* InfoPlist.strings in Resources */,
 				433BBBB91D7EF8260086B6E9 /* TestImage.png in Resources */,

+ 25 - 0
Tests/Tests/SDWebImageDecoderTests.m

@@ -30,6 +30,8 @@
     UIImage *decodedImage = [UIImage decodedImageWithImage:image];
     expect(decodedImage).toNot.beNil();
     expect(decodedImage).toNot.equal(image);
+    expect(decodedImage.size.width).to.equal(image.size.width);
+    expect(decodedImage.size.height).to.equal(image.size.height);
 }
 
 - (void)test03ThatDecodedImageWithImageDoesNotDecodeAnimatedImages {
@@ -55,6 +57,29 @@
     UIImage *decodedImage = [UIImage decodedImageWithImage:image];
     expect(decodedImage).toNot.beNil();
     expect(decodedImage).toNot.equal(image);
+    expect(decodedImage.size.width).to.equal(image.size.width);
+    expect(decodedImage.size.height).to.equal(image.size.height);
+}
+
+- (void)test06ThatDecodeAndScaleDownImageWorks {
+    NSString * testImagePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"TestImageLarge" ofType:@"jpg"];
+    UIImage *image = [UIImage imageWithContentsOfFile:testImagePath];
+    UIImage *decodedImage = [UIImage decodedAndScaledDownImageWithImage:image];
+    expect(decodedImage).toNot.beNil();
+    expect(decodedImage).toNot.equal(image);
+    expect(decodedImage.size.width).toNot.equal(image.size.width);
+    expect(decodedImage.size.height).toNot.equal(image.size.height);
+    expect(decodedImage.size.width * decodedImage.size.height).to.beLessThanOrEqualTo(60 * 1024 * 1024 / 4);    // how many pixels in 60 megs
+}
+
+- (void)test07ThatDecodeAndScaleDownImageDoesNotScaleSmallerImage {
+    NSString * testImagePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"TestImage" ofType:@"jpg"];
+    UIImage *image = [UIImage imageWithContentsOfFile:testImagePath];
+    UIImage *decodedImage = [UIImage decodedAndScaledDownImageWithImage:image];
+    expect(decodedImage).toNot.beNil();
+    expect(decodedImage).toNot.equal(image);
+    expect(decodedImage.size.width).to.equal(image.size.width);
+    expect(decodedImage.size.height).to.equal(image.size.height);
 }
 
 @end

BIN
Tests/Tests/TestImageLarge.jpg