瀏覽代碼

Refactor
Add test case for config which is usesHashedFileName

Hasan 6 年之前
父節點
當前提交
cd375df7c1
共有 2 個文件被更改,包括 17 次插入3 次删除
  1. 3 3
      Sources/Cache/DiskStorage.swift
  2. 14 0
      Tests/KingfisherTests/DiskStorageTests.swift

+ 3 - 3
Sources/Cache/DiskStorage.swift

@@ -196,7 +196,7 @@ public enum DiskStorage {
         }
 
         func cacheFileName(forKey key: String) -> String {
-            if self.config.useEncryptionForCacheFileName {
+            if config.usesHashedFileName {
                 let hashedKey = key.kf.md5
                 if let ext = config.pathExtension {
                     return "\(hashedKey).\(ext)"
@@ -317,8 +317,8 @@ extension DiskStorage {
         /// Default is `nil`, means that the cache file does not contain a file extension.
         public var pathExtension: String? = nil
 
-        /// Default is `true`, means that md5 encryption will be used for creation the cache file name.
-        public var useEncryptionForCacheFileName: Bool = true
+        /// Default is `true`, means that the cache file name will be hashed before storing.
+        public var usesHashedFileName = true
 
         let name: String
         let fileManager: FileManager

+ 14 - 0
Tests/KingfisherTests/DiskStorageTests.swift

@@ -156,6 +156,20 @@ class DiskStorageTests: XCTestCase {
         XCTAssertTrue(urls.count > 0)
     }
 
+    func testConfigUsesHashedFileName() {
+        let key = "test"
+
+        // hashed fileName
+        storage.config.usesHashedFileName = true
+        let hashedFileName = storage.cacheFileName(forKey: key)
+        XCTAssertNotEqual(hashedFileName, key)
+
+        // fileName without hash
+        storage.config.usesHashedFileName = false
+        let originalFileName = storage.cacheFileName(forKey: key)
+        XCTAssertEqual(originalFileName, key)
+    }
+
     func testFileMetaOrder() {
         let urls = [URL(string: "test1")!, URL(string: "test2")!, URL(string: "test3")!]