Преглед изворни кода

Update downloader tests. Add simpler downloader api

onevcat пре 10 година
родитељ
комит
cadeadb83d
2 измењених фајлова са 28 додато и 0 уклоњено
  1. 7 0
      Kingfisher/ImageDownloader.swift
  2. 21 0
      KingfisherTests/ImageDownloaderTests.swift

+ 7 - 0
Kingfisher/ImageDownloader.swift

@@ -45,6 +45,13 @@ public class ImageDownloader: NSObject {
 // MARK: - Download method
 public extension ImageDownloader {
     
+    public func downloadImageWithURL(url: NSURL,
+        progressBlock: ImageDownloaderProgressBlock?,
+        completionHandler: ImageDownloaderCompletionHandler?)
+    {
+        downloadImageWithURL(url, options: KingfisherManager.OptionsNone, progressBlock: progressBlock, completionHandler: completionHandler)
+    }
+    
     public func downloadImageWithURL(url: NSURL,
         options: KingfisherManager.Options,
         progressBlock: ImageDownloaderProgressBlock?,

+ 21 - 0
KingfisherTests/ImageDownloaderTests.swift

@@ -80,7 +80,28 @@ class ImageDownloaderTests: XCTestCase {
     }
     
     func testDownloadAnImageWithMultipleCallback() {
+        let expectation = expectationWithDescription("wait for downloading image")
+        
+        let group = dispatch_group_create()
+        let urlString = testKeys[0]
+        stubRequest("GET", urlString).andReturn(200).withBody(testImageData)
+
+        for _ in 0...5 {
+            dispatch_group_enter(group)
+            downloader.downloadImageWithURL(NSURL(string: urlString)!, options: KingfisherManager.OptionsNone, progressBlock: { (receivedSize, totalSize) -> () in
+                
+                }) { (image, error, imageURL) -> () in
+                    XCTAssert(image != nil, "Download should be able to finished for url: \(imageURL).")
+                    dispatch_group_leave(group)
+                    
+            }
+        }
+
+        dispatch_group_notify(group, dispatch_get_main_queue()) { () -> Void in
+            expectation.fulfill()
+        }
         
+        waitForExpectationsWithTimeout(1, handler: nil)
     }