|
|
|
@ -42,6 +42,8 @@ use OCP\Files\ForbiddenException;
|
|
|
|
|
use OCP\Files\Storage;
|
|
|
|
|
use OCP\IConfig;
|
|
|
|
|
use OCP\IRequestId;
|
|
|
|
|
use OCP\ITempManager;
|
|
|
|
|
use OCP\IUserManager;
|
|
|
|
|
use OCP\Lock\ILockingProvider;
|
|
|
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
|
|
|
use Test\HookHelper;
|
|
|
|
@ -86,7 +88,7 @@ class FileTest extends TestCase {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected function tearDown(): void {
|
|
|
|
|
$userManager = \OC::$server->getUserManager();
|
|
|
|
|
$userManager = \OCP\Server::get(IUserManager::class);
|
|
|
|
|
$userManager->get($this->user)->delete();
|
|
|
|
|
|
|
|
|
|
parent::tearDown();
|
|
|
|
@ -177,13 +179,13 @@ class FileTest extends TestCase {
|
|
|
|
|
public function testSimplePutFails($thrownException, $expectedException, $checkPreviousClass = true): void {
|
|
|
|
|
// setup
|
|
|
|
|
$storage = $this->getMockBuilder(Local::class)
|
|
|
|
|
->setMethods(['writeStream'])
|
|
|
|
|
->setConstructorArgs([['datadir' => \OC::$server->getTempManager()->getTemporaryFolder()]])
|
|
|
|
|
->onlyMethods(['writeStream'])
|
|
|
|
|
->setConstructorArgs([['datadir' => \OCP\Server::get(ITempManager::class)->getTemporaryFolder()]])
|
|
|
|
|
->getMock();
|
|
|
|
|
\OC\Files\Filesystem::mount($storage, [], $this->user . '/');
|
|
|
|
|
/** @var View | MockObject $view */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->setMethods(['getRelativePath', 'resolvePath'])
|
|
|
|
|
->onlyMethods(['getRelativePath', 'resolvePath'])
|
|
|
|
|
->getMock();
|
|
|
|
|
$view->expects($this->atLeastOnce())
|
|
|
|
|
->method('resolvePath')
|
|
|
|
@ -238,12 +240,13 @@ class FileTest extends TestCase {
|
|
|
|
|
public function testChunkedPutFails($thrownException, $expectedException, $checkPreviousClass = false): void {
|
|
|
|
|
// setup
|
|
|
|
|
$storage = $this->getMockBuilder(Local::class)
|
|
|
|
|
->setMethods(['fopen'])
|
|
|
|
|
->setConstructorArgs([['datadir' => \OC::$server->getTempManager()->getTemporaryFolder()]])
|
|
|
|
|
->onlyMethods(['fopen'])
|
|
|
|
|
->setConstructorArgs([['datadir' => \OCP\Server::get(ITempManager::class)->getTemporaryFolder()]])
|
|
|
|
|
->getMock();
|
|
|
|
|
\OC\Files\Filesystem::mount($storage, [], $this->user . '/');
|
|
|
|
|
/** @var View|MockObject */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->setMethods(['getRelativePath', 'resolvePath'])
|
|
|
|
|
->onlyMethods(['getRelativePath', 'resolvePath'])
|
|
|
|
|
->getMock();
|
|
|
|
|
$view->expects($this->atLeastOnce())
|
|
|
|
|
->method('resolvePath')
|
|
|
|
@ -340,7 +343,7 @@ class FileTest extends TestCase {
|
|
|
|
|
/** @var \OCA\DAV\Connector\Sabre\File | MockObject $file */
|
|
|
|
|
$file = $this->getMockBuilder(\OCA\DAV\Connector\Sabre\File::class)
|
|
|
|
|
->setConstructorArgs([$view, $info, null, $request])
|
|
|
|
|
->setMethods(['header'])
|
|
|
|
|
->onlyMethods(['header'])
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
|
// beforeMethod locks
|
|
|
|
@ -690,8 +693,9 @@ class FileTest extends TestCase {
|
|
|
|
|
*/
|
|
|
|
|
public function testSimplePutFailsSizeCheck(): void {
|
|
|
|
|
// setup
|
|
|
|
|
/** @var View|MockObject */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->setMethods(['rename', 'getRelativePath', 'filesize'])
|
|
|
|
|
->onlyMethods(['rename', 'getRelativePath', 'filesize'])
|
|
|
|
|
->getMock();
|
|
|
|
|
$view->expects($this->any())
|
|
|
|
|
->method('rename')
|
|
|
|
@ -820,8 +824,9 @@ class FileTest extends TestCase {
|
|
|
|
|
*/
|
|
|
|
|
public function testSimplePutInvalidChars(): void {
|
|
|
|
|
// setup
|
|
|
|
|
/** @var View|MockObject */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->setMethods(['getRelativePath'])
|
|
|
|
|
->onlyMethods(['getRelativePath'])
|
|
|
|
|
->getMock();
|
|
|
|
|
$view->expects($this->any())
|
|
|
|
|
->method('getRelativePath')
|
|
|
|
@ -859,8 +864,9 @@ class FileTest extends TestCase {
|
|
|
|
|
$this->expectException(\OCA\DAV\Connector\Sabre\Exception\InvalidPath::class);
|
|
|
|
|
|
|
|
|
|
// setup
|
|
|
|
|
/** @var View|MockObject */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->setMethods(['getRelativePath'])
|
|
|
|
|
->onlyMethods(['getRelativePath'])
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
|
$view->expects($this->any())
|
|
|
|
@ -878,8 +884,9 @@ class FileTest extends TestCase {
|
|
|
|
|
|
|
|
|
|
public function testUploadAbort(): void {
|
|
|
|
|
// setup
|
|
|
|
|
/** @var View|MockObject */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->setMethods(['rename', 'getRelativePath', 'filesize'])
|
|
|
|
|
->onlyMethods(['rename', 'getRelativePath', 'filesize'])
|
|
|
|
|
->getMock();
|
|
|
|
|
$view->expects($this->any())
|
|
|
|
|
->method('rename')
|
|
|
|
@ -927,6 +934,7 @@ class FileTest extends TestCase {
|
|
|
|
|
|
|
|
|
|
public function testDeleteWhenAllowed(): void {
|
|
|
|
|
// setup
|
|
|
|
|
/** @var View|MockObject */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
@ -950,6 +958,7 @@ class FileTest extends TestCase {
|
|
|
|
|
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
|
|
|
|
|
|
|
|
|
|
// setup
|
|
|
|
|
/** @var View|MockObject */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
@ -969,6 +978,7 @@ class FileTest extends TestCase {
|
|
|
|
|
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
|
|
|
|
|
|
|
|
|
|
// setup
|
|
|
|
|
/** @var View|MockObject */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
@ -993,6 +1003,7 @@ class FileTest extends TestCase {
|
|
|
|
|
$this->expectException(\OCA\DAV\Connector\Sabre\Exception\Forbidden::class);
|
|
|
|
|
|
|
|
|
|
// setup
|
|
|
|
|
/** @var View|MockObject */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
@ -1060,7 +1071,7 @@ class FileTest extends TestCase {
|
|
|
|
|
$wasLockedPre = false;
|
|
|
|
|
$wasLockedPost = false;
|
|
|
|
|
$eventHandler = $this->getMockBuilder(\stdclass::class)
|
|
|
|
|
->setMethods(['writeCallback', 'postWriteCallback'])
|
|
|
|
|
->addMethods(['writeCallback', 'postWriteCallback'])
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
|
// both pre and post hooks might need access to the file,
|
|
|
|
@ -1166,8 +1177,9 @@ class FileTest extends TestCase {
|
|
|
|
|
public function testGetFopenFails(): void {
|
|
|
|
|
$this->expectException(\Sabre\DAV\Exception\ServiceUnavailable::class);
|
|
|
|
|
|
|
|
|
|
/** @var View|MockObject */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->setMethods(['fopen'])
|
|
|
|
|
->onlyMethods(['fopen'])
|
|
|
|
|
->getMock();
|
|
|
|
|
$view->expects($this->atLeastOnce())
|
|
|
|
|
->method('fopen')
|
|
|
|
@ -1187,8 +1199,9 @@ class FileTest extends TestCase {
|
|
|
|
|
public function testGetFopenThrows(): void {
|
|
|
|
|
$this->expectException(\OCA\DAV\Connector\Sabre\Exception\Forbidden::class);
|
|
|
|
|
|
|
|
|
|
/** @var View|MockObject */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->setMethods(['fopen'])
|
|
|
|
|
->onlyMethods(['fopen'])
|
|
|
|
|
->getMock();
|
|
|
|
|
$view->expects($this->atLeastOnce())
|
|
|
|
|
->method('fopen')
|
|
|
|
@ -1208,8 +1221,9 @@ class FileTest extends TestCase {
|
|
|
|
|
public function testGetThrowsIfNoPermission(): void {
|
|
|
|
|
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
|
|
|
|
|
|
|
|
|
|
/** @var View|MockObject */
|
|
|
|
|
$view = $this->getMockBuilder(View::class)
|
|
|
|
|
->setMethods(['fopen'])
|
|
|
|
|
->onlyMethods(['fopen'])
|
|
|
|
|
->getMock();
|
|
|
|
|
$view->expects($this->never())
|
|
|
|
|
->method('fopen');
|
|
|
|
|