Skip to content

Commit

Permalink
minor silexphp#1207 changed auto-generated route names when there is …
Browse files Browse the repository at this point in the history
…a conflict (fabpot)

This PR was merged into the 2.0.x-dev branch.

Discussion
----------

changed auto-generated route names when there is a conflict

Commits
-------

43aee48 changed auto-generated route names when there is a conflict
  • Loading branch information
fabpot committed Aug 3, 2015
2 parents ad64fad + 43aee48 commit f7b25a2
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
3 changes: 2 additions & 1 deletion src/Silex/ControllerCollection.php
Expand Up @@ -206,8 +206,9 @@ private function doFlush($prefix, RouteCollection $routes)
$controller->getRoute()->setPath($prefix.$controller->getRoute()->getPath());
if (!$name = $controller->getRouteName()) {
$name = $controller->generateRouteName('');
$i = 0;
while ($routes->get($name)) {
$name .= '_';
$name = $controller->generateRouteName('').'_'.++$i;
}
$controller->bind($name);
}
Expand Down
11 changes: 6 additions & 5 deletions tests/Silex/Tests/ControllerCollectionTest.php
Expand Up @@ -71,7 +71,7 @@ public function testConflictingRouteNames()
$mountedRootController = $controllers->match('/', function () {});

$mainRootController = new Controller(new Route('/'));
$mainRootController->bind($mainRootController->generateRouteName('main_'));
$mainRootController->bind($mainRootController->generateRouteName('main_1'));

$controllers->flush();

Expand All @@ -84,11 +84,12 @@ public function testUniqueGeneratedRouteNames()

$controllers->match('/a-a', function () {});
$controllers->match('/a_a', function () {});
$controllers->match('/a/a', function () {});

$routes = $controllers->flush();

$this->assertCount(2, $routes->all());
$this->assertEquals(array('_a_a', '_a_a_'), array_keys($routes->all()));
$this->assertCount(3, $routes->all());
$this->assertEquals(array('_a_a', '_a_a_1', '_a_a_2'), array_keys($routes->all()));
}

public function testUniqueGeneratedRouteNamesAmongMounts()
Expand All @@ -104,7 +105,7 @@ public function testUniqueGeneratedRouteNamesAmongMounts()
$routes = $controllers->flush();

$this->assertCount(2, $routes->all());
$this->assertEquals(array('_root_a_leaf', '_root_a_leaf_'), array_keys($routes->all()));
$this->assertEquals(array('_root_a_leaf', '_root_a_leaf_1'), array_keys($routes->all()));
}

public function testUniqueGeneratedRouteNamesAmongNestedMounts()
Expand All @@ -123,7 +124,7 @@ public function testUniqueGeneratedRouteNamesAmongNestedMounts()
$routes = $controllers->flush();

$this->assertCount(2, $routes->all());
$this->assertEquals(array('_root_a_tree_leaf', '_root_a_tree_leaf_'), array_keys($routes->all()));
$this->assertEquals(array('_root_a_tree_leaf', '_root_a_tree_leaf_1'), array_keys($routes->all()));
}

public function testAssert()
Expand Down

0 comments on commit f7b25a2

Please sign in to comment.