Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
Zip
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Jira
Jira
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
YongYue
Zip
Commits
14a80abb
Commit
14a80abb
authored
8 years ago
by
Tim Bjärengren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added functions to handle custom file extensions.
parent
977af1db
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
70 additions
and
4 deletions
+70
-4
Zip/Zip.swift
Zip/Zip.swift
+40
-3
ZipTests/ZipTests.swift
ZipTests/ZipTests.swift
+30
-1
No files found.
Zip/Zip.swift
View file @
14a80abb
...
...
@@ -31,6 +31,11 @@ public enum ZipError: ErrorType {
/// Zip class
public
class
Zip
{
/**
Set of vaild file extensions
*/
internal
static
var
customFileExtensions
:
Set
<
String
>
=
[]
// MARK: Lifecycle
/**
...
...
@@ -308,13 +313,45 @@ public class Zip {
- parameter fileExtension: A file extension.
- returns: false if the extension is
"zip" or "cbz"
, otherwise true.
- returns: false if the extension is
a valid file extension
, otherwise true.
*/
internal
class
func
fileExtensionIsInvalid
(
fileExtension
:
String
?)
->
Bool
{
guard
let
fileExtension
=
fileExtension
else
{
return
true
}
return
!
[
"zip"
,
"cbz"
]
.
contains
(
fileExtension
)
return
!
isValidFileExtension
(
fileExtension
)
}
}
\ No newline at end of file
/**
Add a file extension to the set of custom file extensions
- parameter fileExtension: A file extension.
*/
public
class
func
addCustomFileExtension
(
fileExtension
:
String
)
{
customFileExtensions
.
insert
(
fileExtension
)
}
/**
Remove a file extension from the set of custom file extensions
- parameter fileExtension: A file extension.
*/
public
class
func
removeCustomFileExtension
(
fileExtension
:
String
)
{
customFileExtensions
.
remove
(
fileExtension
)
}
/**
Check if a specific file extension is valid
- parameter fileExtension: A file extension.
- returns: true if the extension valid, otherwise false.
*/
public
class
func
isValidFileExtension
(
fileExtension
:
String
)
->
Bool
{
let
validFileExtensions
:
Set
<
String
>
=
customFileExtensions
.
union
([
"zip"
,
"cbz"
])
return
validFileExtensions
.
contains
(
fileExtension
)
}
}
This diff is collapsed.
Click to expand it.
ZipTests/ZipTests.swift
View file @
14a80abb
...
...
@@ -209,7 +209,7 @@ class ZipTests: XCTestCase {
}
}
func
testFileExtensionIsInvalidForValidUrl
()
{
func
testFileExtensionIs
Not
InvalidForValidUrl
()
{
let
fileUrl
=
NSURL
(
string
:
"file.cbz"
)
let
result
=
Zip
.
fileExtensionIsInvalid
(
fileUrl
?
.
pathExtension
)
XCTAssertFalse
(
result
)
...
...
@@ -220,4 +220,33 @@ class ZipTests: XCTestCase {
let
result
=
Zip
.
fileExtensionIsInvalid
(
fileUrl
?
.
pathExtension
)
XCTAssertTrue
(
result
)
}
func
testAddedCustomFileExtensionIsValid
()
{
let
fileExtension
=
"cstm"
Zip
.
addCustomFileExtension
(
fileExtension
)
let
result
=
Zip
.
isValidFileExtension
(
fileExtension
)
XCTAssertTrue
(
result
)
Zip
.
removeCustomFileExtension
(
fileExtension
)
}
func
testRemovedCustomFileExtensionIsInvalid
()
{
let
fileExtension
=
"cstm"
Zip
.
addCustomFileExtension
(
fileExtension
)
Zip
.
removeCustomFileExtension
(
fileExtension
)
let
result
=
Zip
.
isValidFileExtension
(
fileExtension
)
XCTAssertFalse
(
result
)
}
func
testDefaultFileExtensionsIsValid
()
{
XCTAssertTrue
(
Zip
.
isValidFileExtension
(
"zip"
))
XCTAssertTrue
(
Zip
.
isValidFileExtension
(
"cbz"
))
}
func
testDefaultFileExtensionsIsNotRemoved
()
{
Zip
.
removeCustomFileExtension
(
"zip"
)
Zip
.
removeCustomFileExtension
(
"cbz"
)
XCTAssertTrue
(
Zip
.
isValidFileExtension
(
"zip"
))
XCTAssertTrue
(
Zip
.
isValidFileExtension
(
"cbz"
))
}
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment