Browse Source

Improve some test Sendable

onevcat 1 year ago
parent
commit
b2a4506b26
2 changed files with 19 additions and 14 deletions
  1. 1 1
      Sources/Cache/ImageCache.swift
  2. 18 13
      Tests/KingfisherTests/ImageDownloaderTests.swift

+ 1 - 1
Sources/Cache/ImageCache.swift

@@ -693,7 +693,7 @@ open class ImageCache {
                 if options.backgroundDecode {
                 if options.backgroundDecode {
                     image = image?.kf.decoded(scale: options.scaleFactor)
                     image = image?.kf.decoded(scale: options.scaleFactor)
                 }
                 }
-                callbackQueue.execute { completionHandler(.success(image)) }
+                callbackQueue.execute { [image] in completionHandler(.success(image)) }
             } catch let error as KingfisherError {
             } catch let error as KingfisherError {
                 callbackQueue.execute { completionHandler(.failure(error)) }
                 callbackQueue.execute { completionHandler(.failure(error)) }
             } catch {
             } catch {

+ 18 - 13
Tests/KingfisherTests/ImageDownloaderTests.swift

@@ -31,7 +31,6 @@ import XCTest
 class ImageDownloaderTests: XCTestCase {
 class ImageDownloaderTests: XCTestCase {
 
 
     var downloader: ImageDownloader!
     var downloader: ImageDownloader!
-    var modifier = URLModifier()
 
 
     override class func setUp() {
     override class func setUp() {
         super.setUp()
         super.setUp()
@@ -132,7 +131,7 @@ class ImageDownloaderTests: XCTestCase {
         let url = testURLs[0]
         let url = testURLs[0]
         stub(url, data: testImageData)
         stub(url, data: testImageData)
         
         
-        modifier.url = url
+        let modifier = URLModifier(url: url)
         
         
         let someURL = URL(string: "some_strange_url")!
         let someURL = URL(string: "some_strange_url")!
         let task = downloader.downloadImage(with: someURL, options: [.requestModifier(modifier)]) { result in
         let task = downloader.downloadImage(with: someURL, options: [.requestModifier(modifier)]) { result in
@@ -152,12 +151,10 @@ class ImageDownloaderTests: XCTestCase {
 
 
         var downloadTaskCalled = false
         var downloadTaskCalled = false
 
 
-        let asyncModifier = AsyncURLModifier()
-        asyncModifier.url = url
-        asyncModifier.onDownloadTaskStarted = { task in
+        let asyncModifier = AsyncURLModifier(url: url, onDownloadTaskStarted: { task in
             XCTAssertNotNil(task)
             XCTAssertNotNil(task)
             downloadTaskCalled = true
             downloadTaskCalled = true
-        }
+        })
 
 
         let someURL = URL(string: "some_strange_url")!
         let someURL = URL(string: "some_strange_url")!
         let task = downloader.downloadImage(with: someURL, options: [.requestModifier(asyncModifier)]) { result in
         let task = downloader.downloadImage(with: someURL, options: [.requestModifier(asyncModifier)]) { result in
@@ -229,7 +226,7 @@ class ImageDownloaderTests: XCTestCase {
     func testDownloadEmptyURL() {
     func testDownloadEmptyURL() {
         let exp = expectation(description: #function)
         let exp = expectation(description: #function)
         
         
-        modifier.url = nil
+        let modifier = URLModifier(url: nil)
         
         
         let url = URL(string: "http://onevcat.com")!
         let url = URL(string: "http://onevcat.com")!
         downloader.downloadImage(
         downloader.downloadImage(
@@ -432,7 +429,7 @@ class ImageDownloaderTests: XCTestCase {
     }
     }
     
     
     func testDownloadTaskNil() {
     func testDownloadTaskNil() {
-        modifier.url = nil
+        let modifier = URLModifier(url: nil)
         let downloadTask = downloader.downloadImage(with: URL(string: "url")!, options: [.requestModifier(modifier)])
         let downloadTask = downloader.downloadImage(with: URL(string: "url")!, options: [.requestModifier(modifier)])
         XCTAssertNil(downloadTask)
         XCTAssertNil(downloadTask)
     }
     }
@@ -692,8 +689,11 @@ class TaskResponseCompletion: ImageDownloaderDelegate {
     }
     }
 }
 }
 
 
-class URLModifier: ImageDownloadRequestModifier {
-    var url: URL? = nil
+final class URLModifier: ImageDownloadRequestModifier {
+    let url: URL?
+    init(url: URL?) {
+        self.url = url
+    }
     func modified(for request: URLRequest) -> URLRequest? {
     func modified(for request: URLRequest) -> URLRequest? {
         var r = request
         var r = request
         r.url = url
         r.url = url
@@ -701,9 +701,14 @@ class URLModifier: ImageDownloadRequestModifier {
     }
     }
 }
 }
 
 
-class AsyncURLModifier: AsyncImageDownloadRequestModifier {
-    var url: URL? = nil
-    var onDownloadTaskStarted: ((DownloadTask?) -> Void)?
+final class AsyncURLModifier: AsyncImageDownloadRequestModifier {
+    let url: URL?
+    let onDownloadTaskStarted: ((DownloadTask?) -> Void)?
+    
+    init(url: URL?, onDownloadTaskStarted: ((DownloadTask?) -> Void)?) {
+        self.url = url
+        self.onDownloadTaskStarted = onDownloadTaskStarted
+    }
 
 
     func modified(for request: URLRequest) async -> URLRequest? {
     func modified(for request: URLRequest) async -> URLRequest? {
         var r = request
         var r = request