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; $routeName = $routeNamePrefix . $this->appName . '.' . $controller . '.' . $action . $postfix;
$router = $this->router->create($routeName, $url) $router = $this->router->create($routeName, $url)
->method($verb) ->method($verb);
->setDefault('caller', [$this->appName, $controllerName, $actionName]);
// optionally register requirements for route. This is used to // optionally register requirements for route. This is used to
// tell the route parser how url parameters should be matched // 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 // optionally register defaults for route. This is used to
// tell the route parser how url parameters should be default valued // tell the route parser how url parameters should be default valued
$defaults = [];
if (array_key_exists('defaults', $route)) { 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); $routeName = $routeNamePrefix . $this->appName . '.' . strtolower($resource) . '.' . strtolower($method);
$this->router->create($routeName, $url) $route = $this->router->create($routeName, $url)
->method($verb) ->method($verb);
->setDefault('caller', [$this->appName, $controllerName, $actionName]);
$route->defaults(['caller' => [$this->appName, $controllerName, $actionName]]);
} }
} }
} }

View File

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