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

Fix tests for new behavior

onevcat пре 5 година
родитељ
комит
9d7040cb45

+ 6 - 6
Tests/KingfisherTests/ImageCacheTests.swift

@@ -385,7 +385,7 @@ class ImageCacheTests: XCTestCase {
     }
 
 #if os(iOS) || os(tvOS) || os(watchOS)
-    func testGettingMemoryCachedImageCouldBeModified() {
+    func testModifierShouldOnlyApplyForFinalResultWhenMemoryLoad() {
         let exp = expectation(description: #function)
         let key = testKeys[0]
 
@@ -397,15 +397,15 @@ class ImageCacheTests: XCTestCase {
 
         cache.store(testImage, original: testImageData, forKey: key) { _ in
             self.cache.retrieveImage(forKey: key, options: [.imageModifier(modifier)]) { result in
-                XCTAssertTrue(modifierCalled)
-                XCTAssertEqual(result.value?.image?.renderingMode, .alwaysTemplate)
+                XCTAssertFalse(modifierCalled)
+                XCTAssertEqual(result.value?.image?.renderingMode, .automatic)
                 exp.fulfill()
             }
         }
         waitForExpectations(timeout: 3, handler: nil)
     }
 
-    func testGettingDiskCachedImageCouldBeModified() {
+    func testModifierShouldOnlyApplyForFinalResultWhenDiskLoad() {
         let exp = expectation(description: #function)
         let key = testKeys[0]
 
@@ -418,8 +418,8 @@ class ImageCacheTests: XCTestCase {
         cache.store(testImage, original: testImageData, forKey: key) { _ in
             self.cache.clearMemoryCache()
             self.cache.retrieveImage(forKey: key, options: [.imageModifier(modifier)]) { result in
-                XCTAssertTrue(modifierCalled)
-                XCTAssertEqual(result.value?.image?.renderingMode, .alwaysTemplate)
+                XCTAssertFalse(modifierCalled)
+                XCTAssertEqual(result.value?.image?.renderingMode, .automatic)
                 exp.fulfill()
             }
         }

+ 3 - 3
Tests/KingfisherTests/ImageDownloaderTests.swift

@@ -512,7 +512,7 @@ class ImageDownloaderTests: XCTestCase {
     }
 
 #if os(iOS) || os(tvOS) || os(watchOS)
-    func testDownloadedImageCouldBeModified() {
+    func testModifierShouldOnlyApplyForFinalResultWhenDownload() {
         let exp = expectation(description: #function)
 
         let url = testURLs[0]
@@ -525,8 +525,8 @@ class ImageDownloaderTests: XCTestCase {
         }
 
         downloader.downloadImage(with: url, options: [.imageModifier(modifier)]) { result in
-            XCTAssertTrue(modifierCalled)
-            XCTAssertEqual(result.value?.image.renderingMode, .alwaysTemplate)
+            XCTAssertFalse(modifierCalled)
+            XCTAssertEqual(result.value?.image.renderingMode, .automatic)
             exp.fulfill()
         }
 

+ 30 - 0
Tests/KingfisherTests/KingfisherManagerTests.swift

@@ -661,6 +661,36 @@ class KingfisherManagerTests: XCTestCase {
         }
         waitForExpectations(timeout: 3, handler: nil)
     }
+
+    func testImageModifierResultShouldNotBeCached() {
+        let exp = expectation(description: #function)
+        let url = testURLs[0]
+        stub(url, data: testImageData)
+
+        var modifierCalled = false
+        let modifier = AnyImageModifier { image in
+            modifierCalled = true
+            return image.withRenderingMode(.alwaysTemplate)
+        }
+        manager.retrieveImage(with: url, options: [.imageModifier(modifier)]) { result in
+            XCTAssertTrue(modifierCalled)
+            XCTAssertEqual(result.value?.image.renderingMode, .alwaysTemplate)
+
+            let memoryCached = self.manager.cache.retrieveImageInMemoryCache(forKey: url.absoluteString)
+            XCTAssertNotNil(memoryCached)
+            XCTAssertEqual(memoryCached?.renderingMode, .automatic)
+
+            self.manager.cache.retrieveImageInDiskCache(forKey: url.absoluteString) { result in
+                XCTAssertNotNil(result.value!)
+                XCTAssertEqual(result.value??.renderingMode, .automatic)
+
+                exp.fulfill()
+            }
+        }
+        
+        waitForExpectations(timeout: 3, handler: nil)
+    }
+
 #endif
     
     func testRetrieveWithImageProvider() {