Showing
2 changed files
with
75 additions
and
0 deletions
@@ -13,6 +13,7 @@ | @@ -13,6 +13,7 @@ | ||
13 | 433BBBB71D7EF8200086B6E9 /* TestImage.gif in Resources */ = {isa = PBXBuildFile; fileRef = 433BBBB61D7EF8200086B6E9 /* TestImage.gif */; }; | 13 | 433BBBB71D7EF8200086B6E9 /* TestImage.gif in Resources */ = {isa = PBXBuildFile; fileRef = 433BBBB61D7EF8200086B6E9 /* TestImage.gif */; }; |
14 | 433BBBB91D7EF8260086B6E9 /* TestImage.png in Resources */ = {isa = PBXBuildFile; fileRef = 433BBBB81D7EF8260086B6E9 /* TestImage.png */; }; | 14 | 433BBBB91D7EF8260086B6E9 /* TestImage.png in Resources */ = {isa = PBXBuildFile; fileRef = 433BBBB81D7EF8260086B6E9 /* TestImage.png */; }; |
15 | 433BBBBB1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */; }; | 15 | 433BBBBB1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */; }; |
16 | + 4369C1D11D97F80F007E863A /* SDWebImagePrefetcherTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4369C1D01D97F80F007E863A /* SDWebImagePrefetcherTests.m */; }; | ||
16 | 5F7F38AD1AE2A77A00B0E330 /* TestImage.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */; }; | 17 | 5F7F38AD1AE2A77A00B0E330 /* TestImage.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */; }; |
17 | DA248D57195472AA00390AB0 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA248D56195472AA00390AB0 /* XCTest.framework */; }; | 18 | DA248D57195472AA00390AB0 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA248D56195472AA00390AB0 /* XCTest.framework */; }; |
18 | DA248D59195472AA00390AB0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA248D58195472AA00390AB0 /* Foundation.framework */; }; | 19 | DA248D59195472AA00390AB0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA248D58195472AA00390AB0 /* Foundation.framework */; }; |
@@ -30,6 +31,7 @@ | @@ -30,6 +31,7 @@ | ||
30 | 433BBBB61D7EF8200086B6E9 /* TestImage.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TestImage.gif; sourceTree = "<group>"; }; | 31 | 433BBBB61D7EF8200086B6E9 /* TestImage.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TestImage.gif; sourceTree = "<group>"; }; |
31 | 433BBBB81D7EF8260086B6E9 /* TestImage.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = TestImage.png; sourceTree = "<group>"; }; | 32 | 433BBBB81D7EF8260086B6E9 /* TestImage.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = TestImage.png; sourceTree = "<group>"; }; |
32 | 433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = MonochromeTestImage.jpg; sourceTree = "<group>"; }; | 33 | 433BBBBA1D7EFA8B0086B6E9 /* MonochromeTestImage.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = MonochromeTestImage.jpg; sourceTree = "<group>"; }; |
34 | + 4369C1D01D97F80F007E863A /* SDWebImagePrefetcherTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDWebImagePrefetcherTests.m; sourceTree = "<group>"; }; | ||
33 | 5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = TestImage.jpg; sourceTree = "<group>"; }; | 35 | 5F7F38AC1AE2A77A00B0E330 /* TestImage.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = TestImage.jpg; sourceTree = "<group>"; }; |
34 | 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>"; }; | 36 | 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>"; }; |
35 | 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>"; }; | 37 | 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>"; }; |
@@ -111,6 +113,7 @@ | @@ -111,6 +113,7 @@ | ||
111 | DA91BEBB19795BC9006F2536 /* UIImageMultiFormatTests.m */, | 113 | DA91BEBB19795BC9006F2536 /* UIImageMultiFormatTests.m */, |
112 | 1E3C51E819B46E370092B5E6 /* SDWebImageDownloaderTests.m */, | 114 | 1E3C51E819B46E370092B5E6 /* SDWebImageDownloaderTests.m */, |
113 | 433BBBB41D7EF5C00086B6E9 /* SDWebImageDecoderTests.m */, | 115 | 433BBBB41D7EF5C00086B6E9 /* SDWebImageDecoderTests.m */, |
116 | + 4369C1D01D97F80F007E863A /* SDWebImagePrefetcherTests.m */, | ||
114 | ); | 117 | ); |
115 | path = Tests; | 118 | path = Tests; |
116 | sourceTree = "<group>"; | 119 | sourceTree = "<group>"; |
@@ -242,6 +245,7 @@ | @@ -242,6 +245,7 @@ | ||
242 | buildActionMask = 2147483647; | 245 | buildActionMask = 2147483647; |
243 | files = ( | 246 | files = ( |
244 | 1E3C51E919B46E370092B5E6 /* SDWebImageDownloaderTests.m in Sources */, | 247 | 1E3C51E919B46E370092B5E6 /* SDWebImageDownloaderTests.m in Sources */, |
248 | + 4369C1D11D97F80F007E863A /* SDWebImagePrefetcherTests.m in Sources */, | ||
245 | DA248D69195475D800390AB0 /* SDImageCacheTests.m in Sources */, | 249 | DA248D69195475D800390AB0 /* SDImageCacheTests.m in Sources */, |
246 | DA248D6B195476AC00390AB0 /* SDWebImageManagerTests.m in Sources */, | 250 | DA248D6B195476AC00390AB0 /* SDWebImageManagerTests.m in Sources */, |
247 | 433BBBB51D7EF5C00086B6E9 /* SDWebImageDecoderTests.m in Sources */, | 251 | 433BBBB51D7EF5C00086B6E9 /* SDWebImageDecoderTests.m in Sources */, |
Tests/Tests/SDWebImagePrefetcherTests.m
0 → 100644
1 | +/* | ||
2 | + * This file is part of the SDWebImage package. | ||
3 | + * (c) Olivier Poitrey <rs@dailymotion.com> | ||
4 | + * (c) Matt Galloway | ||
5 | + * | ||
6 | + * For the full copyright and license information, please view the LICENSE | ||
7 | + * file that was distributed with this source code. | ||
8 | + */ | ||
9 | + | ||
10 | +#define EXP_SHORTHAND // required by Expecta | ||
11 | + | ||
12 | + | ||
13 | +#import <XCTest/XCTest.h> | ||
14 | +#import <Expecta.h> | ||
15 | + | ||
16 | +#import "SDWebImagePrefetcher.h" | ||
17 | + | ||
18 | +@interface SDWebImagePrefetcherTests : XCTestCase | ||
19 | + | ||
20 | +@end | ||
21 | + | ||
22 | +@implementation SDWebImagePrefetcherTests | ||
23 | + | ||
24 | +- (void)test01ThatSharedPrefetcherIsNotEqualToInitPrefetcher { | ||
25 | + SDWebImagePrefetcher *prefetcher = [[SDWebImagePrefetcher alloc] init]; | ||
26 | + expect(prefetcher).toNot.equal([SDWebImagePrefetcher sharedImagePrefetcher]); | ||
27 | +} | ||
28 | + | ||
29 | +- (void)test02PrefetchMultipleImages { | ||
30 | + XCTestExpectation *expectation = [self expectationWithDescription:@"Correct prefetch of multiple images"]; | ||
31 | + | ||
32 | + NSMutableArray *imageURLs = [NSMutableArray array]; | ||
33 | + | ||
34 | + for (int i=40; i<43; i++) { | ||
35 | + NSString *imageURLString = [NSString stringWithFormat:@"https://s3.amazonaws.com/fast-image-cache/demo-images/FICDDemoImage%03d.jpg", i]; | ||
36 | + NSURL *imageURL = [NSURL URLWithString:imageURLString]; | ||
37 | + [imageURLs addObject:imageURL]; | ||
38 | + } | ||
39 | + | ||
40 | + __block int numberOfPrefetched = 0; | ||
41 | + | ||
42 | + [[SDWebImagePrefetcher sharedImagePrefetcher] prefetchURLs:imageURLs progress:^(NSUInteger noOfFinishedUrls, NSUInteger noOfTotalUrls) { | ||
43 | + numberOfPrefetched += 1; | ||
44 | + expect(numberOfPrefetched).to.equal(noOfFinishedUrls); | ||
45 | + expect(noOfFinishedUrls).to.beLessThanOrEqualTo(noOfTotalUrls); | ||
46 | + expect(noOfTotalUrls).to.equal(imageURLs.count); | ||
47 | + } completed:^(NSUInteger noOfFinishedUrls, NSUInteger noOfSkippedUrls) { | ||
48 | + expect(numberOfPrefetched).to.equal(noOfFinishedUrls); | ||
49 | + expect(noOfFinishedUrls).to.equal(imageURLs.count); | ||
50 | + expect(noOfSkippedUrls).to.equal(0); | ||
51 | + [expectation fulfill]; | ||
52 | + }]; | ||
53 | + | ||
54 | + [self waitForExpectationsWithTimeout:kAsyncTestTimeout handler:nil]; | ||
55 | +} | ||
56 | + | ||
57 | +- (void)test03PrefetchWithEmptyArrayWillCallTheCompletionWithAllZeros { | ||
58 | + XCTestExpectation *expectation = [self expectationWithDescription:@"Prefetch with empty array"]; | ||
59 | + | ||
60 | + [[SDWebImagePrefetcher sharedImagePrefetcher] prefetchURLs:@[] progress:nil completed:^(NSUInteger noOfFinishedUrls, NSUInteger noOfSkippedUrls) { | ||
61 | + expect(noOfFinishedUrls).to.equal(0); | ||
62 | + expect(noOfSkippedUrls).to.equal(0); | ||
63 | + [expectation fulfill]; | ||
64 | + }]; | ||
65 | + | ||
66 | + [self waitForExpectationsWithTimeout:kAsyncTestTimeout handler:nil]; | ||
67 | +} | ||
68 | + | ||
69 | +// TODO: test the prefetcher delegate works | ||
70 | + | ||
71 | +@end |
-
Please register or login to post a comment