diff --git a/tests/Middleware/StripBasePathMiddlewareTest.php b/tests/Middleware/StripBasePathMiddlewareTest.php new file mode 100644 index 0000000..ecec9ba --- /dev/null +++ b/tests/Middleware/StripBasePathMiddlewareTest.php @@ -0,0 +1,51 @@ +container); + + $uri = new Uri('http', 'localhost', null, '/foo/bar'); + $request = new Request('GET', $uri, new Headers, [], [], new Stream(fopen('php://memory', 'w+'))); + + $handler = $this->createMock(App::class); + $handler->expects($this->once())->method('handle')->with( + $this->callback(function (ServerRequestInterface $request): bool { + return $request->getUri()->getPath() == '/foo/bar'; + }) + ); + + $middleware($request, $handler); + } + + public function test_it_strips_the_base_path_for_a_request_in_a_subdirectory(): void + { + $_SERVER['SCRIPT_NAME'] = '/some/dir/index.php'; + + $middleware = new StripBasePathMiddleware($this->container); + + $uri = new Uri('http', 'localhost', null, '/some/dir/foo/bar'); + $request = new Request('GET', $uri, new Headers, [], [], new Stream(fopen('php://memory', 'w+'))); + + $handler = $this->createMock(App::class); + $handler->expects($this->once())->method('handle')->with( + $this->callback(function (ServerRequestInterface $request): bool { + return $request->getUri()->getPath() == '/foo/bar'; + }) + ); + + $middleware($request, $handler); + } +}