diff options
Diffstat (limited to 'tests/lib/Authentication/Token')
-rw-r--r-- | tests/lib/Authentication/Token/RemoteWipeTest.php | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/tests/lib/Authentication/Token/RemoteWipeTest.php b/tests/lib/Authentication/Token/RemoteWipeTest.php new file mode 100644 index 00000000000..e0b3e9fcae9 --- /dev/null +++ b/tests/lib/Authentication/Token/RemoteWipeTest.php @@ -0,0 +1,131 @@ +<?php declare(strict_types=1); + +/** + * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at> + * + * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +namespace Test\Authentication\Token; + +use OC\Authentication\Events\RemoteWipeFinished; +use OC\Authentication\Events\RemoteWipeStarted; +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\RemoteWipe; +use OCP\EventDispatcher\IEventDispatcher; +use OCP\ILogger; +use PHPUnit\Framework\MockObject\MockObject; +use Test\TestCase; + +class RemoteWipeTest extends TestCase { + + /** @var ITokenProvider|MockObject */ + private $tokenProvider; + + /** @var IEventDispatcher|MockObject */ + private $eventDispatcher; + + /** @var ILogger|MockObject */ + private $logger; + + /** @var RemoteWipe */ + private $remoteWipe; + + protected function setUp() { + parent::setUp(); + + $this->tokenProvider = $this->createMock(IProvider::class); + $this->eventDispatcher = $this->createMock(IEventDispatcher::class); + $this->logger = $this->createMock(ILogger::class); + + $this->remoteWipe = new RemoteWipe( + $this->tokenProvider, + $this->eventDispatcher, + $this->logger + ); + } + + public function testStartWipingNotAWipeToken() { + $token = $this->createMock(IToken::class); + $this->tokenProvider->expects($this->once()) + ->method('getToken') + ->with('tk1') + ->willReturn($token); + $this->eventDispatcher->expects($this->never()) + ->method('dispatch'); + + $result = $this->remoteWipe->start('tk1'); + + $this->assertFalse($result); + } + + public function testStartWiping() { + $token = $this->createMock(IToken::class); + $this->tokenProvider->expects($this->once()) + ->method('getToken') + ->with('tk1') + ->willThrowException(new WipeTokenException($token)); + $this->eventDispatcher->expects($this->once()) + ->method('dispatch'); + $this->eventDispatcher->expects($this->once()) + ->method('dispatch') + ->with(RemoteWipeStarted::class, $this->equalTo(new RemoteWipeStarted($token))); + + $result = $this->remoteWipe->start('tk1'); + + $this->assertTrue($result); + } + + public function testFinishWipingNotAWipeToken() { + $token = $this->createMock(IToken::class); + $this->tokenProvider->expects($this->once()) + ->method('getToken') + ->with('tk1') + ->willReturn($token); + $this->eventDispatcher->expects($this->never()) + ->method('dispatch'); + + $result = $this->remoteWipe->finish('tk1'); + + $this->assertFalse($result); + } + + public function startFinishWiping() { + $token = $this->createMock(IToken::class); + $this->tokenProvider->expects($this->once()) + ->method('getToken') + ->with('tk1') + ->willThrowException(new WipeTokenException($token)); + $this->eventDispatcher->expects($this->once()) + ->method('dispatch'); + $this->tokenProvider->expects($this->once()) + ->method('invalidateToken') + ->with($token); + $this->eventDispatcher->expects($this->once()) + ->method('dispatch') + ->with(RemoteWipeFinished::class, $this->equalTo(new RemoteWipeFinished($token))); + + $result = $this->remoteWipe->finish('tk1'); + + $this->assertTrue($result); + } + +} |