Browse Source

Fixing and adding Unit Tests

PJ Fechner 3 năm trước cách đây
mục cha
commit
a4ea6737df

+ 1 - 1
Sources/Extensions/ImageView+Kingfisher.swift

@@ -359,8 +359,8 @@ extension KingfisherWrapper where Base: KFCrossPlatformImageView {
                         }
 
                     case .failure:
-                        mutatingSelf.placeholder = nil
                         if let image = options.onFailureImage {
+                            mutatingSelf.placeholder = nil
                             self.base.image = image
                         }
                         completionHandler?(result)

+ 22 - 0
Tests/KingfisherTests/ImageViewExtensionTests.swift

@@ -569,6 +569,28 @@ class ImageViewExtensionTests: XCTestCase {
 
         waitForExpectations(timeout: 3, handler: nil)
     }
+
+    func testSettingNonWorkingImageWithCustomizePlaceholderAndFailureImage() {
+        let exp = expectation(description: #function)
+        let url = testURLs[0]
+
+        stub(url, errorCode: 404)
+
+        let view = KFCrossPlatformView()
+
+        imageView.kf.setImage(
+            with: url,
+            placeholder: view,
+            options: [.onFailureImage(testImage)])
+        {
+            result in
+            XCTAssertEqual(self.imageView.image, testImage)
+            XCTAssertFalse(self.imageView.subviews.contains(view))
+            exp.fulfill()
+        }
+
+        waitForExpectations(timeout: 3, handler: nil)
+    }
     
     func testSettingNonWorkingImageWithFailureImage() {
         let exp = expectation(description: #function)