Commit 26aa500b authored by Mostafa Berg's avatar Mostafa Berg

+ Updated tests to verify file permission on extraction

+Added test file  for the permissions test case
parent acf81e74
......@@ -7,6 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
303B4F6E1E4CBE5000DC1633 /* permissions.zip in Resources */ = {isa = PBXBuildFile; fileRef = 303B4F6D1E4CBE5000DC1633 /* permissions.zip */; };
342545901CE525B200336074 /* Zip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 347E3AD71C1E04C900A11FD3 /* Zip.swift */; };
342545921CE525B200336074 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 342FC0EB1C5044DC0023A3C3 /* unzip.c */; };
342545941CE525B200336074 /* QuickZip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3443A3F51C4AB8A3004AD173 /* QuickZip.swift */; };
......@@ -69,6 +70,7 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
303B4F6D1E4CBE5000DC1633 /* permissions.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = permissions.zip; sourceTree = "<group>"; };
342545B51CE525B200336074 /* Zip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Zip.framework; sourceTree = BUILT_PRODUCTS_DIR; };
342FC0E71C5044DC0023A3C3 /* crypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypt.h; sourceTree = "<group>"; };
342FC0E81C5044DC0023A3C3 /* ioapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ioapi.c; sourceTree = "<group>"; };
......@@ -194,6 +196,7 @@
347E3A821C1DFFB500A11FD3 /* ZipTests */ = {
isa = PBXGroup;
children = (
303B4F6D1E4CBE5000DC1633 /* permissions.zip */,
34940A221C58876200D41574 /* 3crBXeO.gif */,
34940A231C58876200D41574 /* kYkLkPf.gif */,
3443A3FC1C4AD199004AD173 /* bb8.zip */,
......@@ -415,6 +418,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
303B4F6E1E4CBE5000DC1633 /* permissions.zip in Resources */,
34940A251C58876200D41574 /* kYkLkPf.gif in Resources */,
3443A3FD1C4AD199004AD173 /* bb8.zip in Resources */,
34940A241C58876200D41574 /* 3crBXeO.gif in Resources */,
......
......@@ -217,6 +217,29 @@ class ZipTests: XCTestCase {
}
}
func testUnzipPermissions() {
do {
let permissionsURL = Bundle(for: ZipTests.self).url(forResource: "permissions", withExtension: "zip")!
let unzipDestination = try Zip.quickUnzipFile(permissionsURL)
let fileManager = FileManager.default
let permission777 = unzipDestination.appendingPathComponent("permission_777").appendingPathExtension("txt")
let permission600 = unzipDestination.appendingPathComponent("permission_600").appendingPathExtension("txt")
let permission604 = unzipDestination.appendingPathComponent("permission_604").appendingPathExtension("txt")
do {
let attributes777 = try fileManager.attributesOfItem(atPath: permission777.path)
let attributes600 = try fileManager.attributesOfItem(atPath: permission600.path)
let attributes604 = try fileManager.attributesOfItem(atPath: permission604.path)
XCTAssertEqual(attributes777[.posixPermissions] as? Int, 0o777)
XCTAssertEqual(attributes600[.posixPermissions] as? Int, 0o600)
XCTAssertEqual(attributes604[.posixPermissions] as? Int, 0o604)
} catch {
XCTFail("Failed to get file attributes \(error)")
}
} catch {
XCTFail("Failed extract permissions.zip")
}
}
func testQuickUnzipSubDir() {
do {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment