Merge pull request #21758 from nextcloud/fix/routes/defaults

Fix supporting defaults for routes
This commit is contained in:
Roeland Jago Douma 2020-07-08 20:42:28 +02:00 committed by GitHub
commit ce5cb5ac33
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 20 deletions

View File

@ -141,8 +141,7 @@ class RouteConfig {
$routeName = $routeNamePrefix . $this->appName . '.' . $controller . '.' . $action . $postfix;
$router = $this->router->create($routeName, $url)
->method($verb)
->setDefault('caller', [$this->appName, $controllerName, $actionName]);
->method($verb);
// optionally register requirements for route. This is used to
// tell the route parser how url parameters should be matched
@ -152,9 +151,13 @@ class RouteConfig {
// optionally register defaults for route. This is used to
// tell the route parser how url parameters should be default valued
$defaults = [];
if (array_key_exists('defaults', $route)) {
$router->defaults($route['defaults']);
$defaults = $route['defaults'];
}
$defaults['caller'] = [$this->appName, $controllerName, $actionName];
$router->defaults($defaults);
}
/**
@ -230,9 +233,10 @@ class RouteConfig {
$routeName = $routeNamePrefix . $this->appName . '.' . strtolower($resource) . '.' . strtolower($method);
$this->router->create($routeName, $url)
->method($verb)
->setDefault('caller', [$this->appName, $controllerName, $actionName]);
$route = $this->router->create($routeName, $url)
->method($verb);
$route->defaults(['caller' => [$this->appName, $controllerName, $actionName]]);
}
}
}

View File

@ -419,7 +419,7 @@ class RoutingTest extends \Test\TestCase {
array $defaults=[]
) {
$route = $this->getMockBuilder(Route::class)
->onlyMethods(['method', 'setDefault', 'requirements', 'defaults'])
->onlyMethods(['method', 'requirements', 'defaults'])
->disableOriginalConstructor()
->getMock();
$route
@ -428,12 +428,6 @@ class RoutingTest extends \Test\TestCase {
->with($this->equalTo($verb))
->willReturn($route);
$route
->expects($this->once())
->method('setDefault')
->with('caller', ['app1', $controllerName, $actionName])
->willReturn($route);
if (count($requirements) > 0) {
$route
->expects($this->once())
@ -442,13 +436,15 @@ class RoutingTest extends \Test\TestCase {
->willReturn($route);
}
if (count($defaults) > 0) {
$route
->expects($this->once())
->method('defaults')
->with($this->equalTo($defaults))
->willReturn($route);
}
$route->expects($this->once())
->method('defaults')
->with($this->callback(function (array $def) use ($defaults, $controllerName, $actionName) {
$defaults['caller'] = ['app1', $controllerName, $actionName];
$this->assertEquals($defaults, $def);
return true;
}))
->willReturn($route);
return $route;
}