diff --git a/module/Rest/src/Middleware/CrossDomainMiddleware.php b/module/Rest/src/Middleware/CrossDomainMiddleware.php index d6b84d5b..0ce57e4f 100644 --- a/module/Rest/src/Middleware/CrossDomainMiddleware.php +++ b/module/Rest/src/Middleware/CrossDomainMiddleware.php @@ -1,41 +1,26 @@ process($request); if (! $request->hasHeader('Origin')) { return $response; } @@ -49,9 +34,9 @@ class CrossDomainMiddleware implements MiddlewareInterface // Add OPTIONS-specific headers foreach ([ - 'Access-Control-Allow-Methods' => 'GET,POST,PUT,DELETE,OPTIONS', // TODO Should be based on path - 'Access-Control-Max-Age' => '1000', - 'Access-Control-Allow-Headers' => $request->getHeaderLine('Access-Control-Request-Headers'), + 'Access-Control-Allow-Methods' => 'GET,POST,PUT,DELETE,OPTIONS', // TODO Should be based on path + 'Access-Control-Max-Age' => '1000', + 'Access-Control-Allow-Headers' => $request->getHeaderLine('Access-Control-Request-Headers'), ] as $key => $value) { $response = $response->withHeader($key, $value); } diff --git a/module/Rest/test/Middleware/CrossDomainMiddlewareTest.php b/module/Rest/test/Middleware/CrossDomainMiddlewareTest.php index 016cc04c..8ca260fd 100644 --- a/module/Rest/test/Middleware/CrossDomainMiddlewareTest.php +++ b/module/Rest/test/Middleware/CrossDomainMiddlewareTest.php @@ -1,7 +1,10 @@ middleware = new CrossDomainMiddleware(); + $this->delegate = $this->prophesize(DelegateInterface::class); } /** @@ -24,13 +32,9 @@ class CrossDomainMiddlewareTest extends TestCase public function nonCrossDomainRequestsAreNotAffected() { $originalResponse = new Response(); - $response = $this->middleware->__invoke( - ServerRequestFactory::fromGlobals(), - $originalResponse, - function ($req, $resp) { - return $resp; - } - ); + $this->delegate->process(Argument::any())->willReturn($originalResponse)->shouldbeCalledTimes(1); + + $response = $this->middleware->process(ServerRequestFactory::fromGlobals(), $this->delegate->reveal()); $this->assertSame($originalResponse, $response); $headers = $response->getHeaders(); @@ -44,12 +48,11 @@ class CrossDomainMiddlewareTest extends TestCase public function anyRequestIncludesTheAllowAccessHeader() { $originalResponse = new Response(); - $response = $this->middleware->__invoke( + $this->delegate->process(Argument::any())->willReturn($originalResponse)->shouldbeCalledTimes(1); + + $response = $this->middleware->process( ServerRequestFactory::fromGlobals()->withHeader('Origin', 'local'), - $originalResponse, - function ($req, $resp) { - return $resp; - } + $this->delegate->reveal() ); $this->assertNotSame($originalResponse, $response); @@ -64,11 +67,10 @@ class CrossDomainMiddlewareTest extends TestCase public function optionsRequestIncludesMoreHeaders() { $originalResponse = new Response(); - $request = ServerRequestFactory::fromGlobals(['REQUEST_METHOD' => 'OPTIONS'])->withHeader('Origin', 'local'); + $request = ServerRequestFactory::fromGlobals()->withMethod('OPTIONS')->withHeader('Origin', 'local'); + $this->delegate->process(Argument::any())->willReturn($originalResponse)->shouldbeCalledTimes(1); - $response = $this->middleware->__invoke($request, $originalResponse, function ($req, $resp) { - return $resp; - }); + $response = $this->middleware->process($request, $this->delegate->reveal()); $this->assertNotSame($originalResponse, $response); $headers = $response->getHeaders();