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 @@ ...@@ -7,6 +7,7 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* 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 */; }; 342545901CE525B200336074 /* Zip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 347E3AD71C1E04C900A11FD3 /* Zip.swift */; };
342545921CE525B200336074 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 342FC0EB1C5044DC0023A3C3 /* unzip.c */; }; 342545921CE525B200336074 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 342FC0EB1C5044DC0023A3C3 /* unzip.c */; };
342545941CE525B200336074 /* QuickZip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3443A3F51C4AB8A3004AD173 /* QuickZip.swift */; }; 342545941CE525B200336074 /* QuickZip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3443A3F51C4AB8A3004AD173 /* QuickZip.swift */; };
...@@ -69,6 +70,7 @@ ...@@ -69,6 +70,7 @@
/* End PBXContainerItemProxy section */ /* End PBXContainerItemProxy section */
/* Begin PBXFileReference 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; }; 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>"; }; 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>"; }; 342FC0E81C5044DC0023A3C3 /* ioapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ioapi.c; sourceTree = "<group>"; };
...@@ -194,6 +196,7 @@ ...@@ -194,6 +196,7 @@
347E3A821C1DFFB500A11FD3 /* ZipTests */ = { 347E3A821C1DFFB500A11FD3 /* ZipTests */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
303B4F6D1E4CBE5000DC1633 /* permissions.zip */,
34940A221C58876200D41574 /* 3crBXeO.gif */, 34940A221C58876200D41574 /* 3crBXeO.gif */,
34940A231C58876200D41574 /* kYkLkPf.gif */, 34940A231C58876200D41574 /* kYkLkPf.gif */,
3443A3FC1C4AD199004AD173 /* bb8.zip */, 3443A3FC1C4AD199004AD173 /* bb8.zip */,
...@@ -415,6 +418,7 @@ ...@@ -415,6 +418,7 @@
isa = PBXResourcesBuildPhase; isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
303B4F6E1E4CBE5000DC1633 /* permissions.zip in Resources */,
34940A251C58876200D41574 /* kYkLkPf.gif in Resources */, 34940A251C58876200D41574 /* kYkLkPf.gif in Resources */,
3443A3FD1C4AD199004AD173 /* bb8.zip in Resources */, 3443A3FD1C4AD199004AD173 /* bb8.zip in Resources */,
34940A241C58876200D41574 /* 3crBXeO.gif in Resources */, 34940A241C58876200D41574 /* 3crBXeO.gif in Resources */,
......
...@@ -217,6 +217,29 @@ class ZipTests: XCTestCase { ...@@ -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() { func testQuickUnzipSubDir() {
do { 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