Merge pull request #10932 from owncloud/issue/10926
Add a method to get the absolute url for a route
This commit is contained in:
commit
b644e8a5e7
|
@ -35,13 +35,26 @@ class URLGenerator implements IURLGenerator {
|
|||
* @internal param array $args with param=>value, will be appended to the returned url
|
||||
* @return string the url
|
||||
*
|
||||
* Returns a url to the given app and file.
|
||||
* Returns a url to the given route.
|
||||
*/
|
||||
public function linkToRoute($route, $parameters = array()) {
|
||||
$urlLinkTo = \OC::$server->getRouter()->generate($route, $parameters);
|
||||
return $urlLinkTo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an absolute url using a defined route
|
||||
* @param string $route
|
||||
* @param array $parameters
|
||||
* @internal param array $args with param=>value, will be appended to the returned url
|
||||
* @return string the url
|
||||
*
|
||||
* Returns an absolute url to the given route.
|
||||
*/
|
||||
public function linkToRouteAbsolute($routeName, $arguments = array()) {
|
||||
return $this->getAbsoluteURL($this->linkToRoute($routeName, $arguments));
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an url
|
||||
* @param string $app app
|
||||
|
|
|
@ -42,6 +42,14 @@ interface IURLGenerator {
|
|||
*/
|
||||
public function linkToRoute($routeName, $arguments = array());
|
||||
|
||||
/**
|
||||
* Returns the absolute URL for a route
|
||||
* @param string $routeName the name of the route
|
||||
* @param array $arguments an array with arguments which will be filled into the url
|
||||
* @return string the absolute url
|
||||
*/
|
||||
public function linkToRouteAbsolute($routeName, $arguments = array());
|
||||
|
||||
/**
|
||||
* Returns an URL for an image or file
|
||||
* @param string $appName the name of the app
|
||||
|
|
|
@ -36,6 +36,25 @@ class Test_Urlgenerator extends PHPUnit_Framework_TestCase {
|
|||
$this->assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideRoutes
|
||||
*/
|
||||
public function testLinkToRouteAbsolute($route, $expected) {
|
||||
\OC::$WEBROOT = '/owncloud';
|
||||
$config = $this->getMock('\OCP\IConfig');
|
||||
$urlGenerator = new \OC\URLGenerator($config);
|
||||
$result = $urlGenerator->linkToRouteAbsolute($route);
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
}
|
||||
|
||||
public function provideRoutes() {
|
||||
return array(
|
||||
array('files_index', 'http://localhost/owncloud/index.php/apps/files/'),
|
||||
array('core_ajax_preview', 'http://localhost/owncloud/index.php/core/preview.png'),
|
||||
);
|
||||
}
|
||||
|
||||
public function provideDocRootAppUrlParts() {
|
||||
return array(
|
||||
array('files', 'index.php', array(), '/index.php/apps/files'),
|
||||
|
|
Loading…
Reference in New Issue