         }
     }
     
+    func testApplicationSupport() {
+        do {
+            // json
+            try Disk.save(messages, to: .applicationSupport, as: "messages.json")
+            XCTAssert(Disk.exists("messages.json", in: .applicationSupport))
+            
+            // 1 image
+            try Disk.save(images[0], to: .applicationSupport, as: "image.png")
+            XCTAssert(Disk.exists("image.png", in: .applicationSupport))
+            let retrievedImage = try Disk.retrieve("image.png", from: .applicationSupport, as: UIImage.self)
+            XCTAssert(images[0].dataEquals(retrievedImage))
+            
+            // ... in folder hierarchy
+            try Disk.save(images[0], to: .applicationSupport, as: "Folder1/Folder2/Folder3/image.png")
+            XCTAssert(Disk.exists("Folder1", in: .applicationSupport))
+            XCTAssert(Disk.exists("Folder1/Folder2/", in: .applicationSupport))
+            XCTAssert(Disk.exists("Folder1/Folder2/Folder3/", in: .applicationSupport))
+            XCTAssert(Disk.exists("Folder1/Folder2/Folder3/image.png", in: .applicationSupport))
+            let retrievedImageInFolders = try Disk.retrieve("Folder1/Folder2/Folder3/image.png", from: .applicationSupport, as: UIImage.self)
+            XCTAssert(images[0].dataEquals(retrievedImageInFolders))
+            
+            // Array of images
+            try Disk.save(images, to: .applicationSupport, as: "album")
+            XCTAssert(Disk.exists("album", in: .applicationSupport))
+            let retrievedImages = try Disk.retrieve("album", from: .applicationSupport, as: [UIImage].self)
+            for i in 0..<images.count {
+                XCTAssert(images[i].dataEquals(retrievedImages[i]))
+            }
+        } catch {
+            fatalError(convertErrorToString(error))
+        }
+    }
+    
     func testTemporary() {
         do {
             // json

            XCTAssert(error.code == Disk.ErrorCode.invalidFileName.rawValue)
        }
    }
}

        do {
            try Disk.clear(.documents)
            try Disk.clear(.caches)
            try Disk.clear(.applicationSupport)
            try Disk.clear(.temporary)
        } catch {
            fatalError(convertErrorToString(error))
