Skip to content

Commit 26aa500

Browse files
committed
+ Updated tests to verify file permission on extraction
+Added test file for the permissions test case
1 parent acf81e7 commit 26aa500

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

Zip.xcodeproj/project.pbxproj

+4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10+
303B4F6E1E4CBE5000DC1633 /* permissions.zip in Resources */ = {isa = PBXBuildFile; fileRef = 303B4F6D1E4CBE5000DC1633 /* permissions.zip */; };
1011
342545901CE525B200336074 /* Zip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 347E3AD71C1E04C900A11FD3 /* Zip.swift */; };
1112
342545921CE525B200336074 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 342FC0EB1C5044DC0023A3C3 /* unzip.c */; };
1213
342545941CE525B200336074 /* QuickZip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3443A3F51C4AB8A3004AD173 /* QuickZip.swift */; };
@@ -69,6 +70,7 @@
6970
/* End PBXContainerItemProxy section */
7071

7172
/* Begin PBXFileReference section */
73+
303B4F6D1E4CBE5000DC1633 /* permissions.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = permissions.zip; sourceTree = "<group>"; };
7274
342545B51CE525B200336074 /* Zip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Zip.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7375
342FC0E71C5044DC0023A3C3 /* crypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypt.h; sourceTree = "<group>"; };
7476
342FC0E81C5044DC0023A3C3 /* ioapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ioapi.c; sourceTree = "<group>"; };
@@ -194,6 +196,7 @@
194196
347E3A821C1DFFB500A11FD3 /* ZipTests */ = {
195197
isa = PBXGroup;
196198
children = (
199+
303B4F6D1E4CBE5000DC1633 /* permissions.zip */,
197200
34940A221C58876200D41574 /* 3crBXeO.gif */,
198201
34940A231C58876200D41574 /* kYkLkPf.gif */,
199202
3443A3FC1C4AD199004AD173 /* bb8.zip */,
@@ -415,6 +418,7 @@
415418
isa = PBXResourcesBuildPhase;
416419
buildActionMask = 2147483647;
417420
files = (
421+
303B4F6E1E4CBE5000DC1633 /* permissions.zip in Resources */,
418422
34940A251C58876200D41574 /* kYkLkPf.gif in Resources */,
419423
3443A3FD1C4AD199004AD173 /* bb8.zip in Resources */,
420424
34940A241C58876200D41574 /* 3crBXeO.gif in Resources */,

ZipTests/ZipTests.swift

+23
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,29 @@ class ZipTests: XCTestCase {
217217
}
218218
}
219219

220+
func testUnzipPermissions() {
221+
do {
222+
let permissionsURL = Bundle(for: ZipTests.self).url(forResource: "permissions", withExtension: "zip")!
223+
let unzipDestination = try Zip.quickUnzipFile(permissionsURL)
224+
let fileManager = FileManager.default
225+
let permission777 = unzipDestination.appendingPathComponent("permission_777").appendingPathExtension("txt")
226+
let permission600 = unzipDestination.appendingPathComponent("permission_600").appendingPathExtension("txt")
227+
let permission604 = unzipDestination.appendingPathComponent("permission_604").appendingPathExtension("txt")
228+
229+
do {
230+
let attributes777 = try fileManager.attributesOfItem(atPath: permission777.path)
231+
let attributes600 = try fileManager.attributesOfItem(atPath: permission600.path)
232+
let attributes604 = try fileManager.attributesOfItem(atPath: permission604.path)
233+
XCTAssertEqual(attributes777[.posixPermissions] as? Int, 0o777)
234+
XCTAssertEqual(attributes600[.posixPermissions] as? Int, 0o600)
235+
XCTAssertEqual(attributes604[.posixPermissions] as? Int, 0o604)
236+
} catch {
237+
XCTFail("Failed to get file attributes \(error)")
238+
}
239+
} catch {
240+
XCTFail("Failed extract permissions.zip")
241+
}
242+
}
220243

221244
func testQuickUnzipSubDir() {
222245
do {

ZipTests/permissions.zip

634 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)