|
|
@@ -18,6 +18,15 @@ class RoutingTest extends \Test\TestCase |
|
|
|
$this->assertSimpleRoute($routes, 'folders.open', 'GET', '/folders/{folderId}/open', 'FoldersController', 'open'); |
|
|
|
} |
|
|
|
|
|
|
|
public function testSimpleOCSRoute() { |
|
|
|
$routes = ['ocs' => [ |
|
|
|
['name' => 'folders#open', 'url' => '/folders/{folderId}/open', 'verb' => 'GET'] |
|
|
|
] |
|
|
|
]; |
|
|
|
|
|
|
|
$this->assertSimpleOCSRoute($routes, 'folders.open', 'GET', '/folders/{folderId}/open', 'FoldersController', 'open'); |
|
|
|
} |
|
|
|
|
|
|
|
public function testSimpleRouteWithMissingVerb() |
|
|
|
{ |
|
|
|
$routes = array('routes' => array( |
|
|
@@ -27,6 +36,15 @@ class RoutingTest extends \Test\TestCase |
|
|
|
$this->assertSimpleRoute($routes, 'folders.open', 'GET', '/folders/{folderId}/open', 'FoldersController', 'open'); |
|
|
|
} |
|
|
|
|
|
|
|
public function testSimpleOCSRouteWithMissingVerb() { |
|
|
|
$routes = ['ocs' => [ |
|
|
|
['name' => 'folders#open', 'url' => '/folders/{folderId}/open'] |
|
|
|
] |
|
|
|
]; |
|
|
|
|
|
|
|
$this->assertSimpleOCSRoute($routes, 'folders.open', 'GET', '/folders/{folderId}/open', 'FoldersController', 'open'); |
|
|
|
} |
|
|
|
|
|
|
|
public function testSimpleRouteWithLowercaseVerb() |
|
|
|
{ |
|
|
|
$routes = array('routes' => array( |
|
|
@@ -36,6 +54,15 @@ class RoutingTest extends \Test\TestCase |
|
|
|
$this->assertSimpleRoute($routes, 'folders.open', 'DELETE', '/folders/{folderId}/open', 'FoldersController', 'open'); |
|
|
|
} |
|
|
|
|
|
|
|
public function testSimpleOCSRouteWithLowercaseVerb() { |
|
|
|
$routes = ['ocs' => [ |
|
|
|
['name' => 'folders#open', 'url' => '/folders/{folderId}/open', 'verb' => 'delete'] |
|
|
|
] |
|
|
|
]; |
|
|
|
|
|
|
|
$this->assertSimpleOCSRoute($routes, 'folders.open', 'DELETE', '/folders/{folderId}/open', 'FoldersController', 'open'); |
|
|
|
} |
|
|
|
|
|
|
|
public function testSimpleRouteWithRequirements() |
|
|
|
{ |
|
|
|
$routes = array('routes' => array( |
|
|
@@ -45,6 +72,15 @@ class RoutingTest extends \Test\TestCase |
|
|
|
$this->assertSimpleRoute($routes, 'folders.open', 'DELETE', '/folders/{folderId}/open', 'FoldersController', 'open', array('something')); |
|
|
|
} |
|
|
|
|
|
|
|
public function testSimpleOCSRouteWithRequirements() { |
|
|
|
$routes = ['ocs' => [ |
|
|
|
['name' => 'folders#open', 'url' => '/folders/{folderId}/open', 'verb' => 'delete', 'requirements' => ['something']] |
|
|
|
] |
|
|
|
]; |
|
|
|
|
|
|
|
$this->assertSimpleOCSRoute($routes, 'folders.open', 'DELETE', '/folders/{folderId}/open', 'FoldersController', 'open', ['something']); |
|
|
|
} |
|
|
|
|
|
|
|
public function testSimpleRouteWithDefaults() |
|
|
|
{ |
|
|
|
$routes = array('routes' => array( |
|
|
@@ -54,6 +90,16 @@ class RoutingTest extends \Test\TestCase |
|
|
|
$this->assertSimpleRoute($routes, 'folders.open', 'DELETE', '/folders/{folderId}/open', 'FoldersController', 'open', array(), array('param' => 'foobar')); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testSimpleOCSRouteWithDefaults() { |
|
|
|
$routes = ['ocs' => [ |
|
|
|
['name' => 'folders#open', 'url' => '/folders/{folderId}/open', 'verb' => 'delete', 'defaults' => ['param' => 'foobar']] |
|
|
|
] |
|
|
|
]; |
|
|
|
|
|
|
|
$this->assertSimpleOCSRoute($routes, 'folders.open', 'DELETE', '/folders/{folderId}/open', 'FoldersController', 'open', [], ['param' => 'foobar']); |
|
|
|
} |
|
|
|
|
|
|
|
public function testSimpleRouteWithPostfix() |
|
|
|
{ |
|
|
|
$routes = array('routes' => array( |
|
|
@@ -63,6 +109,14 @@ class RoutingTest extends \Test\TestCase |
|
|
|
$this->assertSimpleRoute($routes, 'folders.open', 'DELETE', '/folders/{folderId}/open', 'FoldersController', 'open', array(), array(), '_something'); |
|
|
|
} |
|
|
|
|
|
|
|
public function testSimpleOCSRouteWithPostfix() { |
|
|
|
$routes = ['ocs' => [ |
|
|
|
['name' => 'folders#open', 'url' => '/folders/{folderId}/open', 'verb' => 'delete', 'postfix' => '_something'] |
|
|
|
] |
|
|
|
]; |
|
|
|
|
|
|
|
$this->assertSimpleOCSRoute($routes, 'folders.open', 'DELETE', '/folders/{folderId}/open', 'FoldersController', 'open', [], [], '_something'); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @expectedException \UnexpectedValueException |
|
|
@@ -86,6 +140,27 @@ class RoutingTest extends \Test\TestCase |
|
|
|
$config->register(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @expectedException \UnexpectedValueException |
|
|
|
*/ |
|
|
|
public function testSimpleOCSRouteWithBrokenName() { |
|
|
|
$routes = ['ocs' => [ |
|
|
|
['name' => 'folders_open', 'url' => '/folders/{folderId}/open', 'verb' => 'delete'] |
|
|
|
]]; |
|
|
|
|
|
|
|
// router mock |
|
|
|
$router = $this->getMockBuilder('\OC\Route\Router') |
|
|
|
->setMethods(['create']) |
|
|
|
->setConstructorArgs([$this->getMockBuilder('\OCP\ILogger')->getMock()]) |
|
|
|
->getMock(); |
|
|
|
|
|
|
|
// load route configuration |
|
|
|
$container = new DIContainer('app1'); |
|
|
|
$config = new RouteConfig($container, $router, $routes); |
|
|
|
|
|
|
|
$config->register(); |
|
|
|
} |
|
|
|
|
|
|
|
public function testSimpleRouteWithUnderScoreNames() |
|
|
|
{ |
|
|
|
$routes = array('routes' => array( |
|
|
@@ -95,6 +170,14 @@ class RoutingTest extends \Test\TestCase |
|
|
|
$this->assertSimpleRoute($routes, 'admin_folders.open_current', 'DELETE', '/folders/{folderId}/open', 'AdminFoldersController', 'openCurrent'); |
|
|
|
} |
|
|
|
|
|
|
|
public function testSimpleOCSRouteWithUnderScoreNames() { |
|
|
|
$routes = ['ocs' => [ |
|
|
|
['name' => 'admin_folders#open_current', 'url' => '/folders/{folderId}/open', 'verb' => 'delete'] |
|
|
|
]]; |
|
|
|
|
|
|
|
$this->assertSimpleOCSRoute($routes, 'admin_folders.open_current', 'DELETE', '/folders/{folderId}/open', 'AdminFoldersController', 'openCurrent'); |
|
|
|
} |
|
|
|
|
|
|
|
public function testResource() |
|
|
|
{ |
|
|
|
$routes = array('resources' => array('account' => array('url' => '/accounts'))); |
|
|
@@ -145,6 +228,54 @@ class RoutingTest extends \Test\TestCase |
|
|
|
$config->register(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @param $routes |
|
|
|
* @param string $name |
|
|
|
* @param string $verb |
|
|
|
* @param string $url |
|
|
|
* @param string $controllerName |
|
|
|
* @param string $actionName |
|
|
|
* @param array $requirements |
|
|
|
* @param array $defaults |
|
|
|
* @param string $postfix |
|
|
|
*/ |
|
|
|
private function assertSimpleOCSRoute($routes, |
|
|
|
$name, |
|
|
|
$verb, |
|
|
|
$url, |
|
|
|
$controllerName, |
|
|
|
$actionName, |
|
|
|
array $requirements=array(), |
|
|
|
array $defaults=array(), |
|
|
|
$postfix='') |
|
|
|
{ |
|
|
|
if ($postfix) { |
|
|
|
$name .= $postfix; |
|
|
|
} |
|
|
|
|
|
|
|
// route mocks |
|
|
|
$container = new DIContainer('app1'); |
|
|
|
$route = $this->mockRoute($container, $verb, $controllerName, $actionName, $requirements, $defaults); |
|
|
|
|
|
|
|
// router mock |
|
|
|
$router = $this->getMockBuilder('\OC\Route\Router') |
|
|
|
->setMethods(['create']) |
|
|
|
->setConstructorArgs([$this->getMockBuilder('\OCP\ILogger')->getMock()]) |
|
|
|
->getMock(); |
|
|
|
|
|
|
|
// we expect create to be called once: |
|
|
|
$router |
|
|
|
->expects($this->once()) |
|
|
|
->method('create') |
|
|
|
->with($this->equalTo('ocs.app1.' . $name), $this->equalTo($url)) |
|
|
|
->will($this->returnValue($route)); |
|
|
|
|
|
|
|
// load route configuration |
|
|
|
$config = new RouteConfig($container, $router, $routes); |
|
|
|
|
|
|
|
$config->register(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @param string $resourceName |
|
|
|
* @param string $url |