From 8c82628622ad2a873dfe922dae455770409771b1 Mon Sep 17 00:00:00 2001 From: Christoph Wurst Date: Tue, 30 Aug 2016 11:10:45 +0200 Subject: [PATCH 1/2] redirect to default app after solving the 2FA challenge --- core/Controller/TwoFactorChallengeController.php | 6 ++++-- tests/Core/Controller/TwoFactorChallengeControllerTest.php | 7 +------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/core/Controller/TwoFactorChallengeController.php b/core/Controller/TwoFactorChallengeController.php index b9e10b147c..7d72a7a2cf 100644 --- a/core/Controller/TwoFactorChallengeController.php +++ b/core/Controller/TwoFactorChallengeController.php @@ -24,6 +24,8 @@ namespace OC\Core\Controller; use OC\Authentication\TwoFactorAuth\Manager; +use OC_User; +use OC_Util; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\RedirectResponse; use OCP\AppFramework\Http\TemplateResponse; @@ -67,7 +69,7 @@ class TwoFactorChallengeController extends Controller { * @return string */ protected function getLogoutAttribute() { - return \OC_User::getLogoutAttribute(); + return OC_User::getLogoutAttribute(); } /** @@ -143,7 +145,7 @@ class TwoFactorChallengeController extends Controller { if (!is_null($redirect_url)) { return new RedirectResponse($this->urlGenerator->getAbsoluteURL(urldecode($redirect_url))); } - return new RedirectResponse($this->urlGenerator->linkToRoute('files.view.index')); + return new RedirectResponse(OC_Util::getDefaultPageUrl()); } $this->session->set('two_factor_auth_error', true); diff --git a/tests/Core/Controller/TwoFactorChallengeControllerTest.php b/tests/Core/Controller/TwoFactorChallengeControllerTest.php index 08d8dd1452..648d99a82f 100644 --- a/tests/Core/Controller/TwoFactorChallengeControllerTest.php +++ b/tests/Core/Controller/TwoFactorChallengeControllerTest.php @@ -167,13 +167,8 @@ class TwoFactorChallengeControllerTest extends TestCase { ->method('verifyChallenge') ->with('myprovider', $user, 'token') ->will($this->returnValue(true)); - $this->urlGenerator->expects($this->once()) - ->method('linkToRoute') - ->with('files.view.index') - ->will($this->returnValue('files/index/url')); - $expected = new \OCP\AppFramework\Http\RedirectResponse('files/index/url'); - $this->assertEquals($expected, $this->controller->solveChallenge('myprovider', 'token')); + $this->assertInstanceOf('\OCP\AppFramework\Http\RedirectResponse', $this->controller->solveChallenge('myprovider', 'token')); } public function testSolveChallengeInvalidProvider() { From b824706ec586cecc65625fb7ca48ac465e7b54b7 Mon Sep 17 00:00:00 2001 From: Christoph Wurst Date: Tue, 30 Aug 2016 13:28:04 +0200 Subject: [PATCH 2/2] check same URL in unit tests --- .../TwoFactorChallengeControllerTest.php | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/tests/Core/Controller/TwoFactorChallengeControllerTest.php b/tests/Core/Controller/TwoFactorChallengeControllerTest.php index 648d99a82f..28f16241e2 100644 --- a/tests/Core/Controller/TwoFactorChallengeControllerTest.php +++ b/tests/Core/Controller/TwoFactorChallengeControllerTest.php @@ -39,13 +39,13 @@ class TwoFactorChallengeControllerTest extends TestCase { protected function setUp() { parent::setUp(); - $this->request = $this->getMock('\OCP\IRequest'); + $this->request = $this->getMockBuilder('\OCP\IRequest')->getMock(); $this->twoFactorManager = $this->getMockBuilder('\OC\Authentication\TwoFactorAuth\Manager') ->disableOriginalConstructor() ->getMock(); - $this->userSession = $this->getMock('\OCP\IUserSession'); - $this->session = $this->getMock('\OCP\ISession'); - $this->urlGenerator = $this->getMock('\OCP\IURLGenerator'); + $this->userSession = $this->getMockBuilder('\OCP\IUserSession')->getMock(); + $this->session = $this->getMockBuilder('\OCP\ISession')->getMock(); + $this->urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator')->getMock(); $this->controller = $this->getMockBuilder('OC\Core\Controller\TwoFactorChallengeController') ->setConstructorArgs([ @@ -64,7 +64,7 @@ class TwoFactorChallengeControllerTest extends TestCase { } public function testSelectChallenge() { - $user = $this->getMock('\OCP\IUser'); + $user = $this->getMockBuilder('\OCP\IUser')->getMock(); $providers = [ 'prov1', 'prov2', @@ -88,7 +88,7 @@ class TwoFactorChallengeControllerTest extends TestCase { } public function testShowChallenge() { - $user = $this->getMock('\OCP\IUser'); + $user = $this->getMockBuilder('\OCP\IUser')->getMock(); $provider = $this->getMockBuilder('\OCP\Authentication\TwoFactorAuth\IProvider') ->disableOriginalConstructor() ->getMock(); @@ -130,7 +130,7 @@ class TwoFactorChallengeControllerTest extends TestCase { } public function testShowInvalidChallenge() { - $user = $this->getMock('\OCP\IUser'); + $user = $this->getMockBuilder('\OCP\IUser')->getMock(); $this->userSession->expects($this->once()) ->method('getUser') @@ -150,7 +150,7 @@ class TwoFactorChallengeControllerTest extends TestCase { } public function testSolveChallenge() { - $user = $this->getMock('\OCP\IUser'); + $user = $this->getMockBuilder('\OCP\IUser')->getMock(); $provider = $this->getMockBuilder('\OCP\Authentication\TwoFactorAuth\IProvider') ->disableOriginalConstructor() ->getMock(); @@ -168,11 +168,12 @@ class TwoFactorChallengeControllerTest extends TestCase { ->with('myprovider', $user, 'token') ->will($this->returnValue(true)); - $this->assertInstanceOf('\OCP\AppFramework\Http\RedirectResponse', $this->controller->solveChallenge('myprovider', 'token')); + $expected = new \OCP\AppFramework\Http\RedirectResponse(\OC_Util::getDefaultPageUrl()); + $this->assertEquals($expected, $this->controller->solveChallenge('myprovider', 'token')); } public function testSolveChallengeInvalidProvider() { - $user = $this->getMock('\OCP\IUser'); + $user = $this->getMockBuilder('\OCP\IUser')->getMock(); $this->userSession->expects($this->once()) ->method('getUser') @@ -192,7 +193,7 @@ class TwoFactorChallengeControllerTest extends TestCase { } public function testSolveInvalidChallenge() { - $user = $this->getMock('\OCP\IUser'); + $user = $this->getMockBuilder('\OCP\IUser')->getMock(); $provider = $this->getMockBuilder('\OCP\Authentication\TwoFactorAuth\IProvider') ->disableOriginalConstructor() ->getMock();