Hides the header actions for file drops
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
This commit is contained in:
parent
c26d847d19
commit
16f379b974
2 changed files with 100 additions and 4 deletions
|
@ -61,7 +61,6 @@ use OCA\Files_Sharing\Activity\Providers\Downloads;
|
||||||
use OCP\Files\NotFoundException;
|
use OCP\Files\NotFoundException;
|
||||||
use OCP\Files\IRootFolder;
|
use OCP\Files\IRootFolder;
|
||||||
use OCP\Share\Exceptions\ShareNotFound;
|
use OCP\Share\Exceptions\ShareNotFound;
|
||||||
use OCP\Util;
|
|
||||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||||
use Symfony\Component\EventDispatcher\GenericEvent;
|
use Symfony\Component\EventDispatcher\GenericEvent;
|
||||||
use OCP\Share\IManager as ShareManager;
|
use OCP\Share\IManager as ShareManager;
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
namespace OCA\Files_Sharing\Tests\Controllers;
|
namespace OCA\Files_Sharing\Tests\Controllers;
|
||||||
|
|
||||||
use OC\Files\Filesystem;
|
use OC\Files\Filesystem;
|
||||||
|
use OC\Files\Node\Folder;
|
||||||
use OCA\FederatedFileSharing\FederatedShareProvider;
|
use OCA\FederatedFileSharing\FederatedShareProvider;
|
||||||
use OCA\Files_Sharing\Controller\ShareController;
|
use OCA\Files_Sharing\Controller\ShareController;
|
||||||
use OCP\AppFramework\Http\DataResponse;
|
use OCP\AppFramework\Http\DataResponse;
|
||||||
|
@ -39,7 +40,9 @@ use OCP\AppFramework\Http\Template\ExternalShareMenuAction;
|
||||||
use OCP\AppFramework\Http\Template\LinkMenuAction;
|
use OCP\AppFramework\Http\Template\LinkMenuAction;
|
||||||
use OCP\AppFramework\Http\Template\PublicTemplateResponse;
|
use OCP\AppFramework\Http\Template\PublicTemplateResponse;
|
||||||
use OCP\AppFramework\Http\Template\SimpleMenuAction;
|
use OCP\AppFramework\Http\Template\SimpleMenuAction;
|
||||||
|
use OCP\Constants;
|
||||||
use OCP\Files\NotFoundException;
|
use OCP\Files\NotFoundException;
|
||||||
|
use OCP\Files\Storage;
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
use OCP\IL10N;
|
use OCP\IL10N;
|
||||||
use OCP\ILogger;
|
use OCP\ILogger;
|
||||||
|
@ -47,14 +50,12 @@ use OCP\IPreview;
|
||||||
use OCP\IRequest;
|
use OCP\IRequest;
|
||||||
use OCP\IUser;
|
use OCP\IUser;
|
||||||
use OCP\Share\Exceptions\ShareNotFound;
|
use OCP\Share\Exceptions\ShareNotFound;
|
||||||
use OCP\AppFramework\Http\NotFoundResponse;
|
|
||||||
use OCP\AppFramework\Http\RedirectResponse;
|
|
||||||
use OCP\AppFramework\Http\TemplateResponse;
|
|
||||||
use OCP\ISession;
|
use OCP\ISession;
|
||||||
use OCP\IUserManager;
|
use OCP\IUserManager;
|
||||||
use OCP\Security\ISecureRandom;
|
use OCP\Security\ISecureRandom;
|
||||||
use OCP\IURLGenerator;
|
use OCP\IURLGenerator;
|
||||||
use OCP\Share\IShare;
|
use OCP\Share\IShare;
|
||||||
|
use PHPUnit\Framework\MockObject\MockObject;
|
||||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -423,6 +424,102 @@ class ShareControllerTest extends \Test\TestCase {
|
||||||
$this->assertEquals($expectedResponse, $response);
|
$this->assertEquals($expectedResponse, $response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks file drop shares:
|
||||||
|
* - there must not be any header action
|
||||||
|
* - the template param "hideFileList" should be true
|
||||||
|
*
|
||||||
|
* @test
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testShareFileDrop() {
|
||||||
|
$this->shareController->setToken('token');
|
||||||
|
|
||||||
|
$owner = $this->getMockBuilder(IUser::class)->getMock();
|
||||||
|
$owner->method('getDisplayName')->willReturn('ownerDisplay');
|
||||||
|
$owner->method('getUID')->willReturn('ownerUID');
|
||||||
|
|
||||||
|
/* @var MockObject|Storage $storage */
|
||||||
|
$storage = $this->getMockBuilder(Storage::class)
|
||||||
|
->disableOriginalConstructor()
|
||||||
|
->getMock();
|
||||||
|
|
||||||
|
/* @var MockObject|Folder $folder */
|
||||||
|
$folder = $this->getMockBuilder(Folder::class)
|
||||||
|
->disableOriginalConstructor()
|
||||||
|
->getMock();
|
||||||
|
$folder->method('getName')->willReturn('/fileDrop');
|
||||||
|
$folder->method('isReadable')->willReturn(true);
|
||||||
|
$folder->method('isShareable')->willReturn(true);
|
||||||
|
$folder->method('getStorage')->willReturn($storage);
|
||||||
|
$folder->method('get')->with('')->willReturn($folder);
|
||||||
|
$folder->method('getSize')->willReturn(1337);
|
||||||
|
|
||||||
|
$share = \OC::$server->getShareManager()->newShare();
|
||||||
|
$share->setId(42);
|
||||||
|
$share->setPermissions(Constants::PERMISSION_CREATE)
|
||||||
|
->setShareOwner('ownerUID')
|
||||||
|
->setNode($folder)
|
||||||
|
->setTarget('/fileDrop');
|
||||||
|
|
||||||
|
$this->shareManager
|
||||||
|
->expects($this->once())
|
||||||
|
->method('getShareByToken')
|
||||||
|
->with('token')
|
||||||
|
->willReturn($share);
|
||||||
|
|
||||||
|
$this->userManager->method('get')->with('ownerUID')->willReturn($owner);
|
||||||
|
|
||||||
|
$this->l10n->expects($this->any())
|
||||||
|
->method('t')
|
||||||
|
->will($this->returnCallback(function($text, $parameters) {
|
||||||
|
return vsprintf($text, $parameters);
|
||||||
|
}));
|
||||||
|
|
||||||
|
$response = $this->shareController->showShare();
|
||||||
|
// skip the "folder" param for tests
|
||||||
|
$responseParams = $response->getParams();
|
||||||
|
unset($responseParams['folder']);
|
||||||
|
$response->setParams($responseParams);
|
||||||
|
|
||||||
|
$sharedTmplParams = array(
|
||||||
|
'displayName' => 'ownerDisplay',
|
||||||
|
'owner' => 'ownerUID',
|
||||||
|
'filename' => '/fileDrop',
|
||||||
|
'directory_path' => '/fileDrop',
|
||||||
|
'mimetype' => null,
|
||||||
|
'dirToken' => 'token',
|
||||||
|
'sharingToken' => 'token',
|
||||||
|
'server2serversharing' => true,
|
||||||
|
'protected' => 'false',
|
||||||
|
'dir' => null,
|
||||||
|
'downloadURL' => '',
|
||||||
|
'fileSize' => '1 KB',
|
||||||
|
'nonHumanFileSize' => 1337,
|
||||||
|
'maxSizeAnimateGif' => null,
|
||||||
|
'previewSupported' => null,
|
||||||
|
'previewEnabled' => null,
|
||||||
|
'previewMaxX' => null,
|
||||||
|
'previewMaxY' => null,
|
||||||
|
'hideFileList' => true,
|
||||||
|
'shareOwner' => 'ownerDisplay',
|
||||||
|
'disclaimer' => null,
|
||||||
|
'shareUrl' => '',
|
||||||
|
'previewImage' => '',
|
||||||
|
'previewURL' => '',
|
||||||
|
'note' => ''
|
||||||
|
);
|
||||||
|
|
||||||
|
$csp = new \OCP\AppFramework\Http\ContentSecurityPolicy();
|
||||||
|
$csp->addAllowedFrameDomain('\'self\'');
|
||||||
|
$expectedResponse = new PublicTemplateResponse($this->appName, 'public', $sharedTmplParams);
|
||||||
|
$expectedResponse->setContentSecurityPolicy($csp);
|
||||||
|
$expectedResponse->setHeaderTitle($sharedTmplParams['filename']);
|
||||||
|
$expectedResponse->setHeaderDetails('shared by ' . $sharedTmplParams['displayName']);
|
||||||
|
|
||||||
|
self::assertEquals($expectedResponse, $response);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @expectedException \OCP\Files\NotFoundException
|
* @expectedException \OCP\Files\NotFoundException
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue