public function testFlushSetsDetailsOnChildrenRoutes() { $routes = new RouteCollectionBuilder(); $routes->add('/blogs/{page}', 'listAction', 'blog_list')->setDefault('page', 1)->setRequirement('id', '\\d+')->setOption('expose', true)->setDefault('_format', 'html')->setRequirement('_format', 'json|xml')->setOption('fooBar', true)->setHost('example.com')->setCondition('request.isSecure()')->setSchemes(array('https'))->setMethods(array('POST')); // a simple route, nothing added to it $routes->add('/blogs/{id}', 'editAction', 'blog_edit'); // configure the collection itself $routes->setDefault('_format', 'json')->setRequirement('_format', 'xml')->setOption('fooBar', false)->setHost('symfony.com')->setCondition('request.query.get("page")==1')->setDefault('_locale', 'fr')->setRequirement('_locale', 'fr|en')->setOption('niceRoute', true)->setSchemes(array('http'))->setMethods(array('GET', 'POST')); $collection = $routes->build(); $actualListRoute = $collection->get('blog_list'); $this->assertEquals(1, $actualListRoute->getDefault('page')); $this->assertEquals('\\d+', $actualListRoute->getRequirement('id')); $this->assertTrue($actualListRoute->getOption('expose')); // none of these should be overridden $this->assertEquals('html', $actualListRoute->getDefault('_format')); $this->assertEquals('json|xml', $actualListRoute->getRequirement('_format')); $this->assertTrue($actualListRoute->getOption('fooBar')); $this->assertEquals('example.com', $actualListRoute->getHost()); $this->assertEquals('request.isSecure()', $actualListRoute->getCondition()); $this->assertEquals(array('https'), $actualListRoute->getSchemes()); $this->assertEquals(array('POST'), $actualListRoute->getMethods()); // inherited from the main collection $this->assertEquals('fr', $actualListRoute->getDefault('_locale')); $this->assertEquals('fr|en', $actualListRoute->getRequirement('_locale')); $this->assertTrue($actualListRoute->getOption('niceRoute')); $actualEditRoute = $collection->get('blog_edit'); // inherited from the collection $this->assertEquals('symfony.com', $actualEditRoute->getHost()); $this->assertEquals('request.query.get("page")==1', $actualEditRoute->getCondition()); $this->assertEquals(array('http'), $actualEditRoute->getSchemes()); $this->assertEquals(array('GET', 'POST'), $actualEditRoute->getMethods()); }