ZipTests.swift 4.45 KB
Newer Older
Roy Marmelstein's avatar
Roy Marmelstein committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
//
//  ZipTests.swift
//  ZipTests
//
//  Created by Roy Marmelstein on 13/12/2015.
//  Copyright © 2015 Roy Marmelstein. All rights reserved.
//

import XCTest
@testable import Zip

class ZipTests: XCTestCase {
    
    override func setUp() {
        super.setUp()
    }
    
    override func tearDown() {
        super.tearDown()
    }
    
22 23
    func testQuickUnzip() {
        do {
Roy Marmelstein's avatar
Roy Marmelstein committed
24
            let filePath = NSBundle(forClass: ZipTests.self).URLForResource("bb8", withExtension: "zip")!
25
            let destinationURL = try Zip.quickUnzipFile(filePath)
26 27 28 29 30
            let fileManager = NSFileManager.defaultManager()
            XCTAssertTrue(fileManager.fileExistsAtPath(destinationURL.path!))
        }
        catch {
            XCTFail()
Roy Marmelstein's avatar
Roy Marmelstein committed
31
        }
Roy Marmelstein's avatar
Roy Marmelstein committed
32 33 34 35 36
    }
    
    func testQuickUnzipNonExistingPath() {
        do {
            let filePathURL = NSBundle(forClass: ZipTests.self).resourcePath
Roy Marmelstein's avatar
Roy Marmelstein committed
37
            let filePath = NSURL(string:"\(filePathURL!)/bb9.zip")
38
            let destinationURL = try Zip.quickUnzipFile(filePath!)
Roy Marmelstein's avatar
Roy Marmelstein committed
39 40 41 42 43 44 45
            let fileManager = NSFileManager.defaultManager()
            XCTAssertFalse(fileManager.fileExistsAtPath(destinationURL.path!))
        }
        catch {
            XCTAssert(true)
        }
    }
46

Roy Marmelstein's avatar
Roy Marmelstein committed
47 48
    func testQuickUnzipNonZipPath() {
        do {
Roy Marmelstein's avatar
Roy Marmelstein committed
49
            let filePath = NSBundle(forClass: ZipTests.self).URLForResource("3crBXeO", withExtension: "gif")!
50
            let destinationURL = try Zip.quickUnzipFile(filePath)
Roy Marmelstein's avatar
Roy Marmelstein committed
51 52 53 54 55 56
            let fileManager = NSFileManager.defaultManager()
            XCTAssertFalse(fileManager.fileExistsAtPath(destinationURL.path!))
        }
        catch {
            XCTAssert(true)
        }
Roy Marmelstein's avatar
Roy Marmelstein committed
57 58
    }
    
Roy Marmelstein's avatar
Roy Marmelstein committed
59 60
    func testQuickUnzipProgress() {
        do {
Roy Marmelstein's avatar
Roy Marmelstein committed
61
            let filePath = NSBundle(forClass: ZipTests.self).URLForResource("bb8", withExtension: "zip")!
62
            try Zip.quickUnzipFile(filePath, progress: { (progress) -> () in
Roy Marmelstein's avatar
Roy Marmelstein committed
63 64 65 66 67 68 69
                XCTAssert(true)
            })
        }
        catch {
            XCTFail()
        }
    }
70
    
Roy Marmelstein's avatar
Roy Marmelstein committed
71
    func testQuickUnzipOnlineURL() {
72
        do {
Roy Marmelstein's avatar
Roy Marmelstein committed
73
            let filePath = NSURL(string: "http://www.google.com/google.zip")!
74
            let destinationURL = try Zip.quickUnzipFile(filePath)
75 76 77 78 79 80 81
            let fileManager = NSFileManager.defaultManager()
            XCTAssertFalse(fileManager.fileExistsAtPath(destinationURL.path!))
        }
        catch {
            XCTAssert(true)
        }
    }
Roy Marmelstein's avatar
Roy Marmelstein committed
82 83 84 85 86
    
    func testUnzip() {
        do {
            let filePath = NSBundle(forClass: ZipTests.self).URLForResource("bb8", withExtension: "zip")!
            let documentsFolder = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL
87
            try Zip.unzipFile(filePath, destination: documentsFolder, overwrite: true, password: "password", progress: { (progress) -> () in
Roy Marmelstein's avatar
Roy Marmelstein committed
88 89 90 91 92 93 94 95 96
                print(progress)
            })
            let fileManager = NSFileManager.defaultManager()
            XCTAssertTrue(fileManager.fileExistsAtPath(documentsFolder.path!))
        }
        catch {
            XCTFail()
        }
    }
97
    
98 99 100 101
    func testQuickZip() {
        do {
            let imageURL1 = NSBundle(forClass: ZipTests.self).URLForResource("3crBXeO", withExtension: "gif")!
            let imageURL2 = NSBundle(forClass: ZipTests.self).URLForResource("kYkLkPf", withExtension: "gif")!
102
            let destinationURL = try Zip.quickZipFiles([imageURL1, imageURL2], fileName: "archive")
103 104 105 106 107 108 109
            let fileManager = NSFileManager.defaultManager()
            XCTAssertTrue(fileManager.fileExistsAtPath(destinationURL.path!))
        }
        catch {
            XCTFail()
        }
    }
Roy Marmelstein's avatar
Roy Marmelstein committed
110 111 112 113 114 115 116
    
    func testZip() {
        do {
            let imageURL1 = NSBundle(forClass: ZipTests.self).URLForResource("3crBXeO", withExtension: "gif")!
            let imageURL2 = NSBundle(forClass: ZipTests.self).URLForResource("kYkLkPf", withExtension: "gif")!
            let documentsFolder = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL
            let zipFilePath = documentsFolder.URLByAppendingPathComponent("archive.zip")
117
            try Zip.zipFiles([imageURL1, imageURL2], zipFilePath: zipFilePath, password: nil, progress: { (progress) -> () in
Roy Marmelstein's avatar
Roy Marmelstein committed
118 119 120 121 122 123 124 125 126 127
                print(progress)
            })
            let fileManager = NSFileManager.defaultManager()
            XCTAssertTrue(fileManager.fileExistsAtPath(zipFilePath.path!))
        }
        catch {
            XCTFail()
        }
    }

128

Roy Marmelstein's avatar
Roy Marmelstein committed
129
}