2016-11-10 15:57:31 +01:00
|
|
|
<?php
|
|
|
|
/**
|
2024-05-10 15:09:14 +02:00
|
|
|
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
|
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
2016-11-10 15:57:31 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
namespace Test\Lockdown;
|
|
|
|
|
2021-12-02 10:39:49 +01:00
|
|
|
use OC\Authentication\Token\PublicKeyToken;
|
2016-11-10 15:57:31 +01:00
|
|
|
use OC\Lockdown\LockdownManager;
|
2024-03-15 12:51:31 +01:00
|
|
|
use OCP\Authentication\Token\IToken;
|
2017-02-17 15:40:20 +01:00
|
|
|
use OCP\ISession;
|
2016-11-10 15:57:31 +01:00
|
|
|
use Test\TestCase;
|
|
|
|
|
|
|
|
class LockdownManagerTest extends TestCase {
|
2017-02-17 15:40:20 +01:00
|
|
|
private $sessionCallback;
|
|
|
|
|
2019-11-27 15:27:18 +01:00
|
|
|
protected function setUp(): void {
|
2017-02-17 15:40:20 +01:00
|
|
|
parent::setUp();
|
|
|
|
|
2020-04-09 13:53:40 +02:00
|
|
|
$this->sessionCallback = function () {
|
2017-02-17 15:40:20 +01:00
|
|
|
return $this->createMock(ISession::class);
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2016-11-10 15:57:31 +01:00
|
|
|
public function testCanAccessFilesystemDisabled(): void {
|
2017-02-17 15:40:20 +01:00
|
|
|
$manager = new LockdownManager($this->sessionCallback);
|
2016-11-10 15:57:31 +01:00
|
|
|
$this->assertTrue($manager->canAccessFilesystem());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testCanAccessFilesystemAllowed(): void {
|
2021-12-02 10:39:49 +01:00
|
|
|
$token = new PublicKeyToken();
|
2024-03-15 12:51:31 +01:00
|
|
|
$token->setScope([IToken::SCOPE_FILESYSTEM => true]);
|
2017-02-17 15:40:20 +01:00
|
|
|
$manager = new LockdownManager($this->sessionCallback);
|
2016-11-10 15:57:31 +01:00
|
|
|
$manager->setToken($token);
|
|
|
|
$this->assertTrue($manager->canAccessFilesystem());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testCanAccessFilesystemNotAllowed(): void {
|
2021-12-02 10:39:49 +01:00
|
|
|
$token = new PublicKeyToken();
|
2024-03-15 12:51:31 +01:00
|
|
|
$token->setScope([IToken::SCOPE_FILESYSTEM => false]);
|
2017-02-17 15:40:20 +01:00
|
|
|
$manager = new LockdownManager($this->sessionCallback);
|
2016-11-10 15:57:31 +01:00
|
|
|
$manager->setToken($token);
|
|
|
|
$this->assertFalse($manager->canAccessFilesystem());
|
|
|
|
}
|
|
|
|
}
|