@@ -35,8 +35,35 @@ class RedirectionTest: XCTestCase {
3535 let response = try makeTestResponse ( for: request, withRedirection: false )
3636 XCTAssertEqual ( expectedNoRedirectStatus, response. status)
3737 }
38- private func makeTestResponse( for request: Request , withRedirection: Bool , routeHandler: ( ( Request ) throws -> String ) ? = nil ) throws -> Response {
38+
39+ func testOnDevelopmentEnvironment( ) throws {
40+ let expectedStatus : HTTPStatus = HTTPResponseStatus ( statusCode: 200 , reasonPhrase: " Ok " )
41+ request. headers. add ( name: . host, value: " localhost:8080 " )
42+ let response = try makeTestResponse ( for: request, withRedirection: true , environment: . development)
43+ XCTAssertEqual ( expectedStatus, response. status)
44+ }
45+
46+ func testWithoutHost( ) throws {
47+ let expectedOutcome : String = " Abort.400: Bad Request "
48+ do {
49+ _ = try makeTestResponse ( for: request, withRedirection: true )
50+ } catch ( let error) {
51+ XCTAssertEqual ( expectedOutcome, error. localizedDescription)
52+ }
53+ }
54+
55+ func testWithProtoSet( ) throws {
56+ let expectedStatus : HTTPStatus = HTTPResponseStatus ( statusCode: 200 , reasonPhrase: " Ok " )
57+ request. headers. add ( name: . xForwardedProto, value: " https " )
58+ let response = try makeTestResponse ( for: request, withRedirection: true )
59+ XCTAssertEqual ( expectedStatus, response. status)
60+ }
61+
62+ private func makeTestResponse( for request: Request , withRedirection: Bool , environment: Environment ? = nil ) throws -> Response {
3963 application. middleware = Middlewares ( )
64+ if let environment = environment {
65+ application. environment = environment
66+ }
4067 if withRedirection == true {
4168 application. middleware. use ( SecurityHeadersFactory ( ) . redirectMiddleware)
4269 }
0 commit comments