Authored by Bogdan Poplauschi

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

@@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
14 433BBBBB1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */; }; 14 433BBBBB1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */; };
15 4369C1D11D97F80F007E863A /* SDWebImagePrefetcherTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4369C1D01D97F80F007E863A /* SDWebImagePrefetcherTests.m */; }; 15 4369C1D11D97F80F007E863A /* SDWebImagePrefetcherTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4369C1D01D97F80F007E863A /* SDWebImagePrefetcherTests.m */; };
16 4369C2741D9804B1007E863A /* SDCategoriesTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4369C2731D9804B1007E863A /* SDCategoriesTests.m */; }; 16 4369C2741D9804B1007E863A /* SDCategoriesTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4369C2731D9804B1007E863A /* SDCategoriesTests.m */; };
  17 + 43828A451DA67F9900000E62 /* TestImageLarge.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 43828A441DA67F9900000E62 /* TestImageLarge.jpg */; };
17 53F0240D24D359127872F512 /* Pods_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DAAA77E3CA7387F702040D9 /* Pods_Tests.framework */; }; 18 53F0240D24D359127872F512 /* Pods_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DAAA77E3CA7387F702040D9 /* Pods_Tests.framework */; };
18 5F7F38AD1AE2A77A00B0E330 /* TestImage.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */; }; 19 5F7F38AD1AE2A77A00B0E330 /* TestImage.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */; };
19 DA248D57195472AA00390AB0 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA248D56195472AA00390AB0 /* XCTest.framework */; }; 20 DA248D57195472AA00390AB0 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA248D56195472AA00390AB0 /* XCTest.framework */; };
@@ -34,6 +35,7 @@ @@ -34,6 +35,7 @@
34 433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = MonochromeTestImage.jpg; sourceTree = "<group>"; }; 35 433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = MonochromeTestImage.jpg; sourceTree = "<group>"; };
35 4369C1D01D97F80F007E863A /* SDWebImagePrefetcherTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDWebImagePrefetcherTests.m; sourceTree = "<group>"; }; 36 4369C1D01D97F80F007E863A /* SDWebImagePrefetcherTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDWebImagePrefetcherTests.m; sourceTree = "<group>"; };
36 4369C2731D9804B1007E863A /* SDCategoriesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDCategoriesTests.m; sourceTree = "<group>"; }; 37 4369C2731D9804B1007E863A /* SDCategoriesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDCategoriesTests.m; sourceTree = "<group>"; };
  38 + 43828A441DA67F9900000E62 /* TestImageLarge.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = TestImageLarge.jpg; sourceTree = "<group>"; };
37 5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = TestImage.jpg; sourceTree = "<group>"; }; 39 5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = TestImage.jpg; sourceTree = "<group>"; };
38 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>"; }; 40 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>"; };
39 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>"; }; 41 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 @@ @@ -108,6 +110,7 @@
108 433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */, 110 433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */,
109 433BBBB61D7EF8200086B6E9 /* TestImage.gif */, 111 433BBBB61D7EF8200086B6E9 /* TestImage.gif */,
110 5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */, 112 5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */,
  113 + 43828A441DA67F9900000E62 /* TestImageLarge.jpg */,
111 433BBBB81D7EF8260086B6E9 /* TestImage.png */, 114 433BBBB81D7EF8260086B6E9 /* TestImage.png */,
112 DA248D5D195472AA00390AB0 /* Supporting Files */, 115 DA248D5D195472AA00390AB0 /* Supporting Files */,
113 DA248D68195475D800390AB0 /* SDImageCacheTests.m */, 116 DA248D68195475D800390AB0 /* SDImageCacheTests.m */,
@@ -185,6 +188,7 @@ @@ -185,6 +188,7 @@
185 buildActionMask = 2147483647; 188 buildActionMask = 2147483647;
186 files = ( 189 files = (
187 5F7F38AD1AE2A77A00B0E330 /* TestImage.jpg in Resources */, 190 5F7F38AD1AE2A77A00B0E330 /* TestImage.jpg in Resources */,
  191 + 43828A451DA67F9900000E62 /* TestImageLarge.jpg in Resources */,
188 433BBBB71D7EF8200086B6E9 /* TestImage.gif in Resources */, 192 433BBBB71D7EF8200086B6E9 /* TestImage.gif in Resources */,
189 DA248D61195472AA00390AB0 /* InfoPlist.strings in Resources */, 193 DA248D61195472AA00390AB0 /* InfoPlist.strings in Resources */,
190 433BBBB91D7EF8260086B6E9 /* TestImage.png in Resources */, 194 433BBBB91D7EF8260086B6E9 /* TestImage.png in Resources */,
@@ -30,6 +30,8 @@ @@ -30,6 +30,8 @@
30 UIImage *decodedImage = [UIImage decodedImageWithImage:image]; 30 UIImage *decodedImage = [UIImage decodedImageWithImage:image];
31 expect(decodedImage).toNot.beNil(); 31 expect(decodedImage).toNot.beNil();
32 expect(decodedImage).toNot.equal(image); 32 expect(decodedImage).toNot.equal(image);
  33 + expect(decodedImage.size.width).to.equal(image.size.width);
  34 + expect(decodedImage.size.height).to.equal(image.size.height);
33 } 35 }
34 36
35 - (void)test03ThatDecodedImageWithImageDoesNotDecodeAnimatedImages { 37 - (void)test03ThatDecodedImageWithImageDoesNotDecodeAnimatedImages {
@@ -55,6 +57,29 @@ @@ -55,6 +57,29 @@
55 UIImage *decodedImage = [UIImage decodedImageWithImage:image]; 57 UIImage *decodedImage = [UIImage decodedImageWithImage:image];
56 expect(decodedImage).toNot.beNil(); 58 expect(decodedImage).toNot.beNil();
57 expect(decodedImage).toNot.equal(image); 59 expect(decodedImage).toNot.equal(image);
  60 + expect(decodedImage.size.width).to.equal(image.size.width);
  61 + expect(decodedImage.size.height).to.equal(image.size.height);
  62 +}
  63 +
  64 +- (void)test06ThatDecodeAndScaleDownImageWorks {
  65 + NSString * testImagePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"TestImageLarge" ofType:@"jpg"];
  66 + UIImage *image = [UIImage imageWithContentsOfFile:testImagePath];
  67 + UIImage *decodedImage = [UIImage decodedAndScaledDownImageWithImage:image];
  68 + expect(decodedImage).toNot.beNil();
  69 + expect(decodedImage).toNot.equal(image);
  70 + expect(decodedImage.size.width).toNot.equal(image.size.width);
  71 + expect(decodedImage.size.height).toNot.equal(image.size.height);
  72 + expect(decodedImage.size.width * decodedImage.size.height).to.beLessThanOrEqualTo(60 * 1024 * 1024 / 4); // how many pixels in 60 megs
  73 +}
  74 +
  75 +- (void)test07ThatDecodeAndScaleDownImageDoesNotScaleSmallerImage {
  76 + NSString * testImagePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"TestImage" ofType:@"jpg"];
  77 + UIImage *image = [UIImage imageWithContentsOfFile:testImagePath];
  78 + UIImage *decodedImage = [UIImage decodedAndScaledDownImageWithImage:image];
  79 + expect(decodedImage).toNot.beNil();
  80 + expect(decodedImage).toNot.equal(image);
  81 + expect(decodedImage.size.width).to.equal(image.size.width);
  82 + expect(decodedImage.size.height).to.equal(image.size.height);
58 } 83 }
59 84
60 @end 85 @end