From 2e4cd445564ba4882ab239bbfd82b6aa800436e3 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Fri, 18 Aug 2017 15:32:40 +0200 Subject: [PATCH] Inject \OCP\IURLGenerator to make tests work Signed-off-by: Lukas Reschke --- core/Controller/TwoFactorChallengeController.php | 2 +- lib/private/NavigationManager.php | 2 +- lib/private/legacy/user.php | 5 +++-- tests/lib/NavigationManagerTest.php | 12 +++++++++++- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/core/Controller/TwoFactorChallengeController.php b/core/Controller/TwoFactorChallengeController.php index af69b55173..52d015903c 100644 --- a/core/Controller/TwoFactorChallengeController.php +++ b/core/Controller/TwoFactorChallengeController.php @@ -70,7 +70,7 @@ class TwoFactorChallengeController extends Controller { * @return string */ protected function getLogoutUrl() { - return OC_User::getLogoutUrl(); + return OC_User::getLogoutUrl($this->urlGenerator); } /** diff --git a/lib/private/NavigationManager.php b/lib/private/NavigationManager.php index ffeaca2b81..5e484bea73 100644 --- a/lib/private/NavigationManager.php +++ b/lib/private/NavigationManager.php @@ -187,7 +187,7 @@ class NavigationManager implements INavigationManager { 'icon' => $this->urlGenerator->imagePath('settings', 'admin.svg'), ]); - $logoutUrl = \OC_User::getLogoutUrl(); + $logoutUrl = \OC_User::getLogoutUrl($this->urlGenerator); if($logoutUrl !== '') { // Logout $this->add([ diff --git a/lib/private/legacy/user.php b/lib/private/legacy/user.php index 97f302c826..9e0ca4b9fe 100644 --- a/lib/private/legacy/user.php +++ b/lib/private/legacy/user.php @@ -283,15 +283,16 @@ class OC_User { /** * Returns the current logout URL valid for the currently logged-in user * + * @param \OCP\IURLGenerator $urlGenerator * @return string */ - public static function getLogoutUrl() { + public static function getLogoutUrl(\OCP\IURLGenerator $urlGenerator) { $backend = self::findFirstActiveUsedBackend(); if ($backend) { return $backend->getLogoutUrl(); } - $logoutUrl = \OC::$server->getURLGenerator()->linkToRouteAbsolute( + $logoutUrl = $urlGenerator->linkToRouteAbsolute( 'core.login.logout', [ 'requesttoken' => \OCP\Util::callRegister(), diff --git a/tests/lib/NavigationManagerTest.php b/tests/lib/NavigationManagerTest.php index edab6070f9..1d3024f053 100644 --- a/tests/lib/NavigationManagerTest.php +++ b/tests/lib/NavigationManagerTest.php @@ -217,6 +217,16 @@ class NavigationManagerTest extends TestCase { $this->urlGenerator->expects($this->any())->method('linkToRoute')->willReturnCallback(function() { return "/apps/test/"; }); + $this->urlGenerator + ->expects($this->once()) + ->method('linkToRouteAbsolute') + ->with( + 'core.login.logout', + [ + 'requesttoken' => \OCP\Util::callRegister(), + ] + ) + ->willReturn('https://example.com/logout'); $user = $this->createMock(IUser::class); $user->expects($this->any())->method('getUID')->willReturn('user001'); $this->userSession->expects($this->any())->method('getUser')->willReturn($user); @@ -260,7 +270,7 @@ class NavigationManagerTest extends TestCase { [ 'id' => 'logout', 'order' => 99999, - 'href' => \OC_User::getLogoutUrl(), + 'href' => 'https://example.com/logout', 'icon' => '/apps/core/img/actions/logout.svg', 'name' => 'Log out', 'active' => false,