Added the "init(uriRoot:)" initializer function for the CheckURIUseCase use case in the library target and also, improved its test cases.
This commit is contained in:
@@ -14,6 +14,22 @@ import struct HummingbirdCore.URI
|
||||
|
||||
/// A use case that checks whether a given URI against a set of conditions, to determine whether the URI could be used by the middleware or not.
|
||||
struct CheckURIUseCase {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A root path that prefixes the documentation resource.
|
||||
private let uriRoot: String
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this use case.
|
||||
///
|
||||
/// > important: It is assumed that the `uriRoot` parameter is not empty and that it is prefixed by the `/` character.
|
||||
///
|
||||
/// - Parameter uriRoot: A root path that prefixes the documentation resource.
|
||||
init(uriRoot: String) {
|
||||
self.uriRoot = uriRoot
|
||||
}
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
@@ -23,8 +39,8 @@ struct CheckURIUseCase {
|
||||
func callAsFunction(_ uri: URI) -> String? {
|
||||
guard
|
||||
let uriPath = uri.path.removingPercentEncoding,
|
||||
!uriPath.contains(.Path.previousFolder),
|
||||
uriPath.hasPrefix(.Path.forwardSlash)
|
||||
uriPath.hasPrefix(uriRoot),
|
||||
!uriPath.contains(.Path.previousFolder)
|
||||
else {
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user