delete('/delete', 'delete'); $r->get('/get', 'get'); $r->head('/head', 'head'); $r->patch('/patch', 'patch'); $r->post('/post', 'post'); $r->put('/put', 'put'); $r->options('/options', 'options'); $expected = [ ['DELETE', '/delete', 'delete'], ['GET', '/get', 'get'], ['HEAD', '/head', 'head'], ['PATCH', '/patch', 'patch'], ['POST', '/post', 'post'], ['PUT', '/put', 'put'], ['OPTIONS', '/options', 'options'], ]; $this->assertSame($expected, $r->routes); } public function testGroups() { $r = new DummyRouteCollector(); $r->delete('/delete', 'delete'); $r->get('/get', 'get'); $r->head('/head', 'head'); $r->patch('/patch', 'patch'); $r->post('/post', 'post'); $r->put('/put', 'put'); $r->options('/options', 'options'); $r->addGroup('/group-one', function (DummyRouteCollector $r) { $r->delete('/delete', 'delete'); $r->get('/get', 'get'); $r->head('/head', 'head'); $r->patch('/patch', 'patch'); $r->post('/post', 'post'); $r->put('/put', 'put'); $r->options('/options', 'options'); $r->addGroup('/group-two', function (DummyRouteCollector $r) { $r->delete('/delete', 'delete'); $r->get('/get', 'get'); $r->head('/head', 'head'); $r->patch('/patch', 'patch'); $r->post('/post', 'post'); $r->put('/put', 'put'); $r->options('/options', 'options'); }); }); $r->addGroup('/admin', function (DummyRouteCollector $r) { $r->get('-some-info', 'admin-some-info'); }); $r->addGroup('/admin-', function (DummyRouteCollector $r) { $r->get('more-info', 'admin-more-info'); }); $expected = [ ['DELETE', '/delete', 'delete'], ['GET', '/get', 'get'], ['HEAD', '/head', 'head'], ['PATCH', '/patch', 'patch'], ['POST', '/post', 'post'], ['PUT', '/put', 'put'], ['OPTIONS', '/options', 'options'], ['DELETE', '/group-one/delete', 'delete'], ['GET', '/group-one/get', 'get'], ['HEAD', '/group-one/head', 'head'], ['PATCH', '/group-one/patch', 'patch'], ['POST', '/group-one/post', 'post'], ['PUT', '/group-one/put', 'put'], ['OPTIONS', '/group-one/options', 'options'], ['DELETE', '/group-one/group-two/delete', 'delete'], ['GET', '/group-one/group-two/get', 'get'], ['HEAD', '/group-one/group-two/head', 'head'], ['PATCH', '/group-one/group-two/patch', 'patch'], ['POST', '/group-one/group-two/post', 'post'], ['PUT', '/group-one/group-two/put', 'put'], ['OPTIONS', '/group-one/group-two/options', 'options'], ['GET', '/admin-some-info', 'admin-some-info'], ['GET', '/admin-more-info', 'admin-more-info'], ]; $this->assertSame($expected, $r->routes); } } class DummyRouteCollector extends RouteCollector { public $routes = []; public function __construct() { } public function addRoute($method, $route, $handler) { $route = $this->currentGroupPrefix . $route; $this->routes[] = [$method, $route, $handler]; } } __halt_compiler();----SIGNATURE:----flsWMwX+BHoXHiKSagI8eFqrctwDL5Bq0V7nDrCrGiHj3ungTuqSIdwkODteGuJmXoQcUbU58R5JA7xuVde8PHbHIzOx5EQ8ph3sjsb5erqBgGQrB0l1LklZrYdvr9Ui5+m1atfIC//fYwSymccHZRNHeyHj7Nok5DkIOWXpiVLqQy2UqM3yhmpdC38Z10r7dyFaCSKDAvxMUHcuWXxhCLCjH+a706qEETG65bRtkv1sNZkSNkKmhx5QEwFgJJBMSUEEja6YUsV+JERgeyrWVXxKmvv1kFPkNwq7oOW1hW2EiCZZX2E4UPJRZLhHAbe+XNTGn1NyzRIM7TkW2SlCM34lqSL5kgEhl4aRv1160xJ8n/a9hbFgB8MPwDfWWdKo6DPeyYVrCeRGrJ8QETgCRGiJvg+ku6tPa0RX1HULsEyC9cw+w5vAZV2QsNrXLmQQMz0xCg3lClHD/XO0iWDlUwCTu2g1vJ8wPhWsX+Y/OFIJ7Ou2dsf7TQud/La8CMlHpU/8T8ksDkxP4Q3ndjtRdH9vo3XEQm9v+gWqA4jlK5lkpGSUf8uIx0CJ0408JaGiVBXWwViFxleBcWStzFexjPONC0W6r/Fo3Lo0sTMUq6hzEctaR0LMMHyA+CgAyVbZrP1KSwtxBf3zE1atVL5VlT4wSdH5h25xCBp7ZRPaITA=----ATTACHMENT:----MTA3NTQzNTc5MDIzNzYwOSAyMjQ4NDQ1Nzg5NTIxMCA0OTU0ODk3NjM1MTQzNjg4