@@ -96,7 +96,7 @@ public class STKPilotableHTTPServer: NSObject {
9696 let scheme : String
9797 let host : String
9898 let documentRoot : String
99- var defaultResponseHeaders : [ String : String ] ?
99+ public var defaultResponseHeaders : [ String : String ] ?
100100
101101 public init ( scheme: String , host: String , documentRoot: String ) {
102102 self . scheme = scheme
@@ -157,9 +157,16 @@ public class STKPilotableHTTPServer: NSObject {
157157 data: Data ? ,
158158 httpVerb: HTTPVerb = . get,
159159 statusCode: Int32 = 200 ,
160- serveForever: Bool = false ) -> URL {
160+ serveForever: Bool = false ,
161+ customResponseHeaders: [ String : String ] ? = nil ) -> URL {
161162 let descriptor = stub ( condition: isScheme ( scheme) && isHost ( host) && isPath ( path) && isMethod ( httpVerb) ) { _ in
162- return OHHTTPStubsResponse ( data: data ?? Data ( ) , statusCode: statusCode, headers: nil )
163+ var headers = self . defaultResponseHeaders ?? [ String: String] ( )
164+ if let customResponseHeaders = customResponseHeaders {
165+ headers. merge ( customResponseHeaders) { ( left, right) -> String in
166+ return right
167+ }
168+ }
169+ return OHHTTPStubsResponse ( data: data ?? Data ( ) , statusCode: statusCode, headers: headers)
163170 }
164171 queue ( descriptor: descriptor, serveForever: serveForever)
165172 return urlForRequest ( onPath: path)
@@ -170,9 +177,21 @@ public class STKPilotableHTTPServer: NSObject {
170177 serveContentOfFileAtPath fileAtPath: String ,
171178 httpVerb: HTTPVerb = . get,
172179 statusCode: Int32 = 200 ,
173- serveForever: Bool = false ) -> URL {
180+ serveForever: Bool = false ,
181+ customResponseHeaders: [ String : String ] ? = nil ) -> URL {
174182 let stubPath = self . pathFromDocumentRoot ( of: fileAtPath)
175- let headers = self . headersWithMimeTypeOfFile ( at: fileAtPath)
183+ var headers = [ String: String] ( )
184+ if let headersWithMimeType = self . headersWithMimeTypeOfFile ( at: fileAtPath) {
185+ headers. merge ( headersWithMimeType) { ( left, right) -> String in
186+ return right
187+ }
188+ }
189+ if let customResponseHeaders = customResponseHeaders {
190+ headers. merge ( customResponseHeaders) { ( left, right) -> String in
191+ return right
192+ }
193+ }
194+
176195 let descriptor = stub ( condition: isScheme ( scheme) && isHost ( host) && isPath ( path) && isMethod ( httpVerb) ) { _ in
177196 return OHHTTPStubsResponse ( fileAtPath: stubPath,
178197 statusCode: statusCode,
0 commit comments