public function testGroupSlashSensitive() { $router = new Router(); $router->get('', function () { return '/!'; }); $router->group('/hello', function () use($router) { $router->get('', function () { return '/hello!'; }); $router->get('/', function () { return '/hello/!'; }); $router->get('///abc', function () { return '/hello///abc!'; }); }); $mockRequest = Mockery::mock(ServerRequestInterface::class); $mockRequest->shouldReceive('getParsedBody')->andReturn([]); $mockRequest->shouldReceive('getMethod')->andReturn('GET'); $mockRequest->shouldReceive('getUri->getPath')->andReturn('/hello'); $this->assertEquals('/hello!', $router->dispatch($mockRequest)); $mockRequest = Mockery::mock(ServerRequestInterface::class); $mockRequest->shouldReceive('getParsedBody')->andReturn([]); $mockRequest->shouldReceive('getMethod')->andReturn('GET'); $mockRequest->shouldReceive('getUri->getPath')->andReturn('/hello/'); $this->assertEquals('/hello/!', $router->dispatch($mockRequest)); $mockRequest = Mockery::mock(ServerRequestInterface::class); $mockRequest->shouldReceive('getParsedBody')->andReturn([]); $mockRequest->shouldReceive('getMethod')->andReturn('GET'); $mockRequest->shouldReceive('getUri->getPath')->andReturn('/hello///abc'); $this->assertEquals('/hello///abc!', $router->dispatch($mockRequest)); }