summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2019-07-03 09:44:37 +0200
committerRoeland Jago Douma <roeland@famdouma.nl>2019-07-09 13:39:27 +0200
commit1c261675ad3da9804bd9a8c88326103eb2f56bd3 (patch)
treebb8dfba33103e10ca51eef1519dc25c46ec55cd3 /tests
parent22de685f546474890ff43bc7d68754afe9fbd6f1 (diff)
downloadnextcloud-server-1c261675ad3da9804bd9a8c88326103eb2f56bd3.tar.gz
nextcloud-server-1c261675ad3da9804bd9a8c88326103eb2f56bd3.zip
Refactor: move remote wipe token logic to RW service
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'tests')
-rw-r--r--tests/Settings/Controller/AuthSettingsControllerTest.php45
-rw-r--r--tests/lib/Authentication/Token/RemoteWipeTest.php30
2 files changed, 69 insertions, 6 deletions
diff --git a/tests/Settings/Controller/AuthSettingsControllerTest.php b/tests/Settings/Controller/AuthSettingsControllerTest.php
index 198b3a72c33..d335abc98a3 100644
--- a/tests/Settings/Controller/AuthSettingsControllerTest.php
+++ b/tests/Settings/Controller/AuthSettingsControllerTest.php
@@ -26,6 +26,7 @@ use OC\Authentication\Exceptions\InvalidTokenException;
use OC\Authentication\Token\DefaultToken;
use OC\Authentication\Token\IProvider;
use OC\Authentication\Token\IToken;
+use OC\Authentication\Token\RemoteWipe;
use OC\Settings\Controller\AuthSettingsController;
use OCP\Activity\IEvent;
use OCP\Activity\IManager;
@@ -35,22 +36,25 @@ use OCP\IRequest;
use OCP\ISession;
use OCP\Security\ISecureRandom;
use OCP\Session\Exceptions\SessionNotAvailableException;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AuthSettingsControllerTest extends TestCase {
/** @var AuthSettingsController */
private $controller;
- /** @var IRequest|\PHPUnit_Framework_MockObject_MockObject */
+ /** @var IRequest|MockObject */
private $request;
- /** @var IProvider|\PHPUnit_Framework_MockObject_MockObject */
+ /** @var IProvider|MockObject */
private $tokenProvider;
- /** @var ISession|\PHPUnit_Framework_MockObject_MockObject */
+ /** @var ISession|MockObject */
private $session;
- /** @var ISecureRandom|\PHPUnit_Framework_MockObject_MockObject */
+ /** @var ISecureRandom|MockObject */
private $secureRandom;
- /** @var IManager|\PHPUnit_Framework_MockObject_MockObject */
+ /** @var IManager|MockObject */
private $activityManager;
+ /** @var RemoteWipe|MockObject */
+ private $remoteWipe;
private $uid = 'jane';
protected function setUp() {
@@ -61,7 +65,8 @@ class AuthSettingsControllerTest extends TestCase {
$this->session = $this->createMock(ISession::class);
$this->secureRandom = $this->createMock(ISecureRandom::class);
$this->activityManager = $this->createMock(IManager::class);
- /** @var ILogger|\PHPUnit_Framework_MockObject_MockObject $logger */
+ $this->remoteWipe = $this->createMock(RemoteWipe::class);
+ /** @var ILogger|MockObject $logger */
$logger = $this->createMock(ILogger::class);
$this->controller = new AuthSettingsController(
@@ -72,6 +77,7 @@ class AuthSettingsControllerTest extends TestCase {
$this->secureRandom,
$this->uid,
$this->activityManager,
+ $this->remoteWipe,
$logger
);
}
@@ -201,6 +207,7 @@ class AuthSettingsControllerTest extends TestCase {
/**
* @dataProvider dataRenameToken
+ *
* @param string $name
* @param string $newName
*/
@@ -243,6 +250,7 @@ class AuthSettingsControllerTest extends TestCase {
/**
* @dataProvider dataUpdateFilesystemScope
+ *
* @param bool $filesystem
* @param bool $newFilesystem
*/
@@ -359,4 +367,29 @@ class AuthSettingsControllerTest extends TestCase {
->with($this->equalTo($tokenId))
->willReturn($token);
}
+
+ public function testRemoteWipeNotSuccessful(): void {
+ $this->remoteWipe->expects($this->once())
+ ->method('markTokenForWipe')
+ ->with(123)
+ ->willReturn(false);
+
+ $response = $this->controller->wipe(123);
+
+ $expected = new JSONResponse([], Http::STATUS_BAD_REQUEST);
+ $this->assertEquals($expected, $response);
+ }
+
+ public function testRemoteWipeSuccessful(): void {
+ $this->remoteWipe->expects($this->once())
+ ->method('markTokenForWipe')
+ ->with(123)
+ ->willReturn(true);
+
+ $response = $this->controller->wipe(123);
+
+ $expected = new JSONResponse([]);
+ $this->assertEquals($expected, $response);
+ }
+
}
diff --git a/tests/lib/Authentication/Token/RemoteWipeTest.php b/tests/lib/Authentication/Token/RemoteWipeTest.php
index e0b3e9fcae9..d5d63b2fb40 100644
--- a/tests/lib/Authentication/Token/RemoteWipeTest.php
+++ b/tests/lib/Authentication/Token/RemoteWipeTest.php
@@ -29,6 +29,7 @@ use OC\Authentication\Exceptions\WipeTokenException;
use OC\Authentication\Token\IProvider as ITokenProvider;
use OC\Authentication\Token\IProvider;
use OC\Authentication\Token\IToken;
+use OC\Authentication\Token\IWipeableToken;
use OC\Authentication\Token\RemoteWipe;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\ILogger;
@@ -63,6 +64,35 @@ class RemoteWipeTest extends TestCase {
);
}
+ public function testMarkNonWipableTokenForWipe(): void {
+ $token = $this->createMock(IToken::class);
+ $this->tokenProvider->expects($this->once())
+ ->method('getTokenById')
+ ->with(123)
+ ->willReturn($token);
+
+ $result = $this->remoteWipe->markTokenForWipe(123);
+
+ $this->assertFalse($result);
+ }
+
+ public function testMarkTokenForWipe(): void {
+ $token = $this->createMock(IWipeableToken::class);
+ $this->tokenProvider->expects($this->once())
+ ->method('getTokenById')
+ ->with(123)
+ ->willReturn($token);
+ $token->expects($this->once())
+ ->method('wipe');
+ $this->tokenProvider->expects($this->once())
+ ->method('updateToken')
+ ->with($token);
+
+ $result = $this->remoteWipe->markTokenForWipe(123);
+
+ $this->assertTrue($result);
+ }
+
public function testStartWipingNotAWipeToken() {
$token = $this->createMock(IToken::class);
$this->tokenProvider->expects($this->once())