aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/tests/ApiTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing/tests/ApiTest.php')
-rw-r--r--apps/files_sharing/tests/ApiTest.php41
1 files changed, 32 insertions, 9 deletions
diff --git a/apps/files_sharing/tests/ApiTest.php b/apps/files_sharing/tests/ApiTest.php
index bb686c1ea8c..960f29224bb 100644
--- a/apps/files_sharing/tests/ApiTest.php
+++ b/apps/files_sharing/tests/ApiTest.php
@@ -7,11 +7,13 @@
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Core\AppInfo\ConfigLexicon;
use OC\Files\Cache\Scanner;
use OC\Files\FileInfo;
use OC\Files\Filesystem;
use OC\Files\Storage\Temporary;
use OC\Files\View;
+use OCA\Federation\TrustedServers;
use OCA\Files_Sharing\Controller\ShareAPIController;
use OCP\App\IAppManager;
use OCP\AppFramework\OCS\OCSBadRequestException;
@@ -21,6 +23,7 @@ use OCP\AppFramework\OCS\OCSNotFoundException;
use OCP\Constants;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IDateTimeZone;
use OCP\IGroupManager;
@@ -35,6 +38,7 @@ use OCP\Server;
use OCP\Share\IProviderFactory;
use OCP\Share\IShare;
use OCP\UserStatus\IManager as IUserStatusManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
@@ -50,11 +54,9 @@ class ApiTest extends TestCase {
private static $tempStorage;
- /** @var Folder */
- private $userFolder;
-
- /** @var string */
- private $subsubfolder;
+ private Folder $userFolder;
+ private string $subsubfolder;
+ protected IAppConfig&MockObject $appConfig;
protected function setUp(): void {
parent::setUp();
@@ -81,6 +83,8 @@ class ApiTest extends TestCase {
$mount->getStorage()->getScanner()->scan('', Scanner::SCAN_RECURSIVE);
$this->userFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1);
+
+ $this->appConfig = $this->createMock(IAppConfig::class);
}
protected function tearDown(): void {
@@ -114,6 +118,7 @@ class ApiTest extends TestCase {
$providerFactory = $this->createMock(IProviderFactory::class);
$mailer = $this->createMock(IMailer::class);
$tagManager = $this->createMock(ITagManager::class);
+ $trustedServers = $this->createMock(TrustedServers::class);
$dateTimeZone->method('getTimeZone')->willReturn(new \DateTimeZone(date_default_timezone_get()));
return new ShareAPIController(
@@ -126,6 +131,7 @@ class ApiTest extends TestCase {
Server::get(IURLGenerator::class),
$l,
$config,
+ $this->appConfig,
$appManager,
$serverContainer,
$userStatusManager,
@@ -135,6 +141,7 @@ class ApiTest extends TestCase {
$providerFactory,
$mailer,
$tagManager,
+ $trustedServers,
$userId,
);
}
@@ -233,8 +240,12 @@ class ApiTest extends TestCase {
/**
* @group RoutingWeirdness
+ * @dataProvider dataAllowFederationOnPublicShares
*/
- public function testCreateShareLinkPublicUpload(): void {
+ public function testCreateShareLinkPublicUpload(array $appConfig, int $permissions): void {
+ $this->appConfig->method('getValueBool')
+ ->willReturnMap([$appConfig]);
+
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'true');
$ocs->cleanup();
@@ -245,7 +256,7 @@ class ApiTest extends TestCase {
| Constants::PERMISSION_CREATE
| Constants::PERMISSION_UPDATE
| Constants::PERMISSION_DELETE
- | Constants::PERMISSION_SHARE,
+ | $permissions,
$data['permissions']
);
$this->assertEmpty($data['expiration']);
@@ -1005,8 +1016,13 @@ class ApiTest extends TestCase {
/**
* @medium
+ * @dataProvider dataAllowFederationOnPublicShares
*/
- public function testUpdateShareUpload(): void {
+ public function testUpdateShareUpload(array $appConfig, int $permissions): void {
+ $this->appConfig->method('getValueBool')->willReturnMap([
+ $appConfig,
+ ]);
+
$node1 = $this->userFolder->get($this->folder);
$share1 = $this->shareManager->newShare();
$share1->setNode($node1)
@@ -1026,7 +1042,7 @@ class ApiTest extends TestCase {
| Constants::PERMISSION_CREATE
| Constants::PERMISSION_UPDATE
| Constants::PERMISSION_DELETE
- | Constants::PERMISSION_SHARE,
+ | $permissions,
$share1->getPermissions()
);
@@ -1034,6 +1050,13 @@ class ApiTest extends TestCase {
$this->shareManager->deleteShare($share1);
}
+ public static function dataAllowFederationOnPublicShares(): array {
+ return [
+ [['core', ConfigLexicon::SHAREAPI_ALLOW_FEDERATION_ON_PUBLIC_SHARES, false, false], 0],
+ [['core', ConfigLexicon::SHAREAPI_ALLOW_FEDERATION_ON_PUBLIC_SHARES, false, true], Constants::PERMISSION_SHARE],
+ ];
+ }
+
/**
* @medium
*/