From a3b33bea037278f1fab6e5c23f6ae6f092bcb407 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Sun, 14 Jan 2018 14:10:21 +0100 Subject: Make the URLGenerator strict * Add scalar argument types * Add return types * Make strict * General phpstorm cleanup Signed-off-by: Roeland Jago Douma --- lib/private/URLGenerator.php | 36 ++++++++++++------------- lib/public/IURLGenerator.php | 23 ++++++---------- tests/Settings/Mailer/NewUserMailHelperTest.php | 2 ++ 3 files changed, 27 insertions(+), 34 deletions(-) diff --git a/lib/private/URLGenerator.php b/lib/private/URLGenerator.php index f7d80d41b4f..c72c2255179 100644 --- a/lib/private/URLGenerator.php +++ b/lib/private/URLGenerator.php @@ -1,4 +1,5 @@ getRouter()->generate($route, $parameters); - return $urlLinkTo; + return \OC::$server->getRouter()->generate($route, $parameters); } /** @@ -88,7 +86,7 @@ class URLGenerator implements IURLGenerator { * * Returns an absolute url to the given route. */ - public function linkToRouteAbsolute($routeName, $arguments = array()) { + public function linkToRouteAbsolute(string $routeName, array $arguments = array()): string { return $this->getAbsoluteURL($this->linkToRoute($routeName, $arguments)); } @@ -102,20 +100,20 @@ class URLGenerator implements IURLGenerator { * * Returns a url to the given app and file. */ - public function linkTo( $app, $file, $args = array() ) { + public function linkTo(string $app, string $file, array $args = array()): string { $frontControllerActive = ($this->config->getSystemValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true'); - if( $app != '' ) { + if( $app !== '' ) { $app_path = \OC_App::getAppPath($app); // Check if the app is in the app folder if ($app_path && file_exists($app_path . '/' . $file)) { - if (substr($file, -3) == 'php') { + if (substr($file, -3) === 'php') { $urlLinkTo = \OC::$WEBROOT . '/index.php/apps/' . $app; if ($frontControllerActive) { $urlLinkTo = \OC::$WEBROOT . '/apps/' . $app; } - $urlLinkTo .= ($file != 'index.php') ? '/' . $file : ''; + $urlLinkTo .= ($file !== 'index.php') ? '/' . $file : ''; } else { $urlLinkTo = \OC_App::getAppWebPath($app) . '/' . $file; } @@ -150,7 +148,7 @@ class URLGenerator implements IURLGenerator { * * Returns the path to the image. */ - public function imagePath($app, $image) { + public function imagePath(string $app, string $image): string { $cache = $this->cacheFactory->createDistributed('imagePath-'.md5($this->getBaseUrl()).'-'); $cacheKey = $app.'-'.$image; if($key = $cache->get($cacheKey)) { @@ -210,9 +208,9 @@ class URLGenerator implements IURLGenerator { if($path !== '') { $cache->set($cacheKey, $path); return $path; - } else { - throw new RuntimeException('image not found: image:' . $image . ' webroot:' . \OC::$WEBROOT . ' serverroot:' . \OC::$SERVERROOT); } + + throw new RuntimeException('image not found: image:' . $image . ' webroot:' . \OC::$WEBROOT . ' serverroot:' . \OC::$SERVERROOT); } @@ -221,15 +219,15 @@ class URLGenerator implements IURLGenerator { * @param string $url the url in the ownCloud host * @return string the absolute version of the url */ - public function getAbsoluteURL($url) { + public function getAbsoluteURL(string $url): string { $separator = $url[0] === '/' ? '' : '/'; - if (\OC::$CLI && !defined('PHPUNIT_RUN')) { + if (\OC::$CLI && !\defined('PHPUNIT_RUN')) { return rtrim($this->config->getSystemValue('overwrite.cli.url'), '/') . '/' . ltrim($url, '/'); } // The ownCloud web root can already be prepended. - if(substr($url, 0, strlen(\OC::$WEBROOT)) === \OC::$WEBROOT) { - $url = substr($url, strlen(\OC::$WEBROOT)); + if(substr($url, 0, \strlen(\OC::$WEBROOT)) === \OC::$WEBROOT) { + $url = substr($url, \strlen(\OC::$WEBROOT)); } return $this->getBaseUrl() . $separator . $url; @@ -239,7 +237,7 @@ class URLGenerator implements IURLGenerator { * @param string $key * @return string url to the online documentation */ - public function linkToDocs($key) { + public function linkToDocs(string $key): string { $theme = \OC::$server->getThemingDefaults(); return $theme->buildDocLinkToKey($key); } @@ -247,7 +245,7 @@ class URLGenerator implements IURLGenerator { /** * @return string base url of the current request */ - public function getBaseUrl() { + public function getBaseUrl(): string { return $this->request->getServerProtocol() . '://' . $this->request->getServerHost() . \OC::$WEBROOT; } } diff --git a/lib/public/IURLGenerator.php b/lib/public/IURLGenerator.php index 944029914e8..ebf35967551 100644 --- a/lib/public/IURLGenerator.php +++ b/lib/public/IURLGenerator.php @@ -1,4 +1,5 @@ defaults = $this->createMock(Defaults::class); + $this->defaults->method('getLogo') + ->willReturn('myLogo'); $this->urlGenerator = $this->createMock(IURLGenerator::class); $this->l10n = $this->createMock(IL10N::class); $this->mailer = $this->createMock(IMailer::class); -- cgit v1.2.3