mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
Merge pull request #36774 from nextcloud/bugfix/noid/sabre-nodes
fix: always use proper path on node api when calling the view
This commit is contained in:
commit
855e7a2efb
8 changed files with 102 additions and 135 deletions
|
|
@ -91,11 +91,13 @@ abstract class Node implements \Sabre\DAV\INode {
|
|||
if ($info instanceof Folder || $info instanceof File) {
|
||||
$this->node = $info;
|
||||
} else {
|
||||
// The Node API assumes that the view passed doesn't have a fake root
|
||||
$rootView = \OC::$server->get(View::class);
|
||||
$root = \OC::$server->get(IRootFolder::class);
|
||||
if ($info->getType() === FileInfo::TYPE_FOLDER) {
|
||||
$this->node = new Folder($root, $view, $this->path, $info);
|
||||
$this->node = new Folder($root, $rootView, $this->fileView->getAbsolutePath($this->path), $info);
|
||||
} else {
|
||||
$this->node = new File($root, $view, $this->path, $info);
|
||||
$this->node = new File($root, $rootView, $this->fileView->getAbsolutePath($this->path), $info);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -107,10 +109,11 @@ abstract class Node implements \Sabre\DAV\INode {
|
|||
}
|
||||
$this->info = $info;
|
||||
$root = \OC::$server->get(IRootFolder::class);
|
||||
$rootView = \OC::$server->get(View::class);
|
||||
if ($this->info->getType() === FileInfo::TYPE_FOLDER) {
|
||||
$this->node = new Folder($root, $this->fileView, $this->path, $this->info);
|
||||
$this->node = new Folder($root, $rootView, $this->path, $this->info);
|
||||
} else {
|
||||
$this->node = new File($root, $this->fileView, $this->path, $this->info);
|
||||
$this->node = new File($root, $rootView, $this->path, $this->info);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,9 +29,12 @@
|
|||
namespace OCA\DAV\Tests\Unit\Connector\Sabre;
|
||||
|
||||
use OC\Files\FileInfo;
|
||||
use OC\Files\Filesystem;
|
||||
use OC\Files\Node\Node;
|
||||
use OC\Files\Storage\Wrapper\Quota;
|
||||
use OC\Files\View;
|
||||
use OCA\DAV\Connector\Sabre\Directory;
|
||||
use OCP\Constants;
|
||||
use OCP\Files\ForbiddenException;
|
||||
use OCP\Files\Mount\IMountPoint;
|
||||
use Test\Traits\UserTrait;
|
||||
|
|
@ -91,6 +94,10 @@ class DirectoryTest extends \Test\TestCase {
|
|||
->willReturn(Node::TYPE_FOLDER);
|
||||
$this->info->method('getName')
|
||||
->willReturn("folder");
|
||||
$this->info->method('getPath')
|
||||
->willReturn("/admin/files/folder");
|
||||
$this->info->method('getPermissions')
|
||||
->willReturn(Constants::PERMISSION_READ);
|
||||
}
|
||||
|
||||
private function getDir($path = '/') {
|
||||
|
|
@ -207,12 +214,21 @@ class DirectoryTest extends \Test\TestCase {
|
|||
|
||||
$this->view->expects($this->once())
|
||||
->method('getDirectoryContent')
|
||||
->with('')
|
||||
->willReturn([$info1, $info2]);
|
||||
|
||||
$this->view->expects($this->any())
|
||||
->method('getRelativePath')
|
||||
->willReturn('');
|
||||
->willReturnCallback(function ($path) {
|
||||
return str_replace('/admin/files/', '', $path);
|
||||
});
|
||||
|
||||
$this->view->expects($this->any())
|
||||
->method('getAbsolutePath')
|
||||
->willReturnCallback(function ($path) {
|
||||
return Filesystem::normalizePath('/admin/files' . $path);
|
||||
});
|
||||
|
||||
$this->overwriteService(View::class, $this->view);
|
||||
|
||||
$dir = new Directory($this->view, $this->info);
|
||||
$nodes = $dir->getChildren();
|
||||
|
|
|
|||
|
|
@ -86,9 +86,11 @@ class FileSearchBackendTest extends TestCase {
|
|||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$this->view = $this->getMockBuilder(View::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->view = $this->createMock(View::class);
|
||||
|
||||
$this->view->expects($this->any())
|
||||
->method('getRoot')
|
||||
->willReturn('');
|
||||
|
||||
$this->view->expects($this->any())
|
||||
->method('getRelativePath')
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ use OCP\Files\InvalidPathException;
|
|||
use OCP\Files\NotFoundException;
|
||||
use OCP\Files\NotPermittedException;
|
||||
use OCP\Lock\LockedException;
|
||||
use OCP\PreConditionNotMetException;
|
||||
use Symfony\Component\EventDispatcher\GenericEvent;
|
||||
|
||||
// FIXME: this class really should be abstract
|
||||
|
|
@ -52,7 +53,7 @@ class Node implements \OCP\Files\Node {
|
|||
protected $root;
|
||||
|
||||
/**
|
||||
* @var string $path
|
||||
* @var string $path Absolute path to the node (e.g. /admin/files/folder/file)
|
||||
*/
|
||||
protected $path;
|
||||
|
||||
|
|
@ -72,6 +73,9 @@ class Node implements \OCP\Files\Node {
|
|||
* @param FileInfo $fileInfo
|
||||
*/
|
||||
public function __construct($root, $view, $path, $fileInfo = null, ?Node $parent = null, bool $infoHasSubMountsIncluded = true) {
|
||||
if (Filesystem::normalizePath($view->getRoot()) !== '/') {
|
||||
throw new PreConditionNotMetException('The view passed to the node should not have any fake root set');
|
||||
}
|
||||
$this->view = $view;
|
||||
$this->root = $root;
|
||||
$this->path = $path;
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ class FileTest extends NodeTest {
|
|||
|
||||
$root = new \OC\Files\Node\Root(
|
||||
$this->manager,
|
||||
new $this->view,
|
||||
$this->view,
|
||||
$this->user,
|
||||
$this->userMountCache,
|
||||
$this->logger,
|
||||
|
|
@ -277,7 +277,7 @@ class FileTest extends NodeTest {
|
|||
|
||||
$root = new \OC\Files\Node\Root(
|
||||
$this->manager,
|
||||
new $this->view,
|
||||
$this->view,
|
||||
$this->user,
|
||||
$this->userMountCache,
|
||||
$this->logger,
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ use OC\Files\Search\SearchOrder;
|
|||
use OC\Files\Search\SearchQuery;
|
||||
use OC\Files\Storage\Temporary;
|
||||
use OC\Files\Storage\Wrapper\Jail;
|
||||
use OC\Files\View;
|
||||
use OCP\Files\Cache\ICacheEntry;
|
||||
use OCP\Files\Mount\IMountPoint;
|
||||
use OCP\Files\NotFoundException;
|
||||
|
|
@ -40,6 +39,9 @@ use OCP\Files\Storage;
|
|||
*/
|
||||
class FolderTest extends NodeTest {
|
||||
protected function createTestNode($root, $view, $path, array $data = [], $internalPath = '', $storage = null) {
|
||||
$view->expects($this->any())
|
||||
->method('getRoot')
|
||||
->willReturn('');
|
||||
if ($data || $internalPath || $storage) {
|
||||
return new Folder($root, $view, $path, $this->getFileInfo($data, $internalPath, $storage));
|
||||
} else {
|
||||
|
|
@ -64,25 +66,26 @@ class FolderTest extends NodeTest {
|
|||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->setConstructorArgs([$manager, $this->view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
$root->expects($this->any())
|
||||
->method('getUser')
|
||||
->willReturn($this->user);
|
||||
|
||||
$view->expects($this->any())
|
||||
$this->view->expects($this->any())
|
||||
->method('getDirectoryContent')
|
||||
->with('/bar/foo')
|
||||
->willReturn([
|
||||
new FileInfo('/bar/foo/asd', null, 'foo/asd', ['fileid' => 2, 'path' => '/bar/foo/asd', 'name' => 'asd', 'size' => 100, 'mtime' => 50, 'mimetype' => 'text/plain'], null),
|
||||
new FileInfo('/bar/foo/qwerty', null, 'foo/qwerty', ['fileid' => 3, 'path' => '/bar/foo/qwerty', 'name' => 'qwerty', 'size' => 200, 'mtime' => 55, 'mimetype' => 'httpd/unix-directory'], null),
|
||||
]);
|
||||
$view->method('getFileInfo')
|
||||
$this->view->method('getFileInfo')
|
||||
->willReturn($this->createMock(FileInfo::class));
|
||||
$this->view->method('getRelativePath')
|
||||
->willReturn('/bar/foo');
|
||||
|
||||
$node = new Folder($root, $view, '/bar/foo');
|
||||
$node = new Folder($root, $this->view, '/bar/foo');
|
||||
$children = $node->getDirectoryListing();
|
||||
$this->assertEquals(2, count($children));
|
||||
$this->assertInstanceOf('\OC\Files\Node\File', $children[0]);
|
||||
|
|
@ -95,10 +98,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testGet() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
@ -117,10 +117,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testNodeExists() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
@ -140,10 +137,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testNodeExistsNotExists() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
@ -161,10 +155,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testNewFolder() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
@ -188,10 +179,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testNewFolderDeepParent() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
@ -218,10 +206,7 @@ class FolderTest extends NodeTest {
|
|||
$this->expectException(\OCP\Files\NotPermittedException::class);
|
||||
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
@ -238,10 +223,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testNewFile() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
@ -268,10 +250,7 @@ class FolderTest extends NodeTest {
|
|||
$this->expectException(\OCP\Files\NotPermittedException::class);
|
||||
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
@ -288,10 +267,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testGetFreeSpace() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
@ -308,10 +284,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testSearch() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
@ -351,10 +324,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testSearchInRoot() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setMethods(['getUser', 'getMountsIn', 'getMount'])
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
|
|
@ -395,10 +365,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testSearchInStorageRoot() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
@ -438,10 +405,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testSearchSubStorages() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
@ -498,21 +462,18 @@ class FolderTest extends NodeTest {
|
|||
}
|
||||
|
||||
public function testIsSubNode() {
|
||||
$file = new Node(null, null, '/foo/bar');
|
||||
$folder = new Folder(null, null, '/foo');
|
||||
$file = new Node(null, $this->view, '/foo/bar');
|
||||
$folder = new Folder(null, $this->view, '/foo');
|
||||
$this->assertTrue($folder->isSubNode($file));
|
||||
$this->assertFalse($folder->isSubNode($folder));
|
||||
|
||||
$file = new Node(null, null, '/foobar');
|
||||
$file = new Node(null, $this->view, '/foobar');
|
||||
$this->assertFalse($folder->isSubNode($file));
|
||||
}
|
||||
|
||||
public function testGetById() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setMethods(['getMountsIn', 'getMount'])
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
|
|
@ -559,10 +520,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testGetByIdMountRoot() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setMethods(['getMountsIn', 'getMount'])
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
|
|
@ -605,10 +563,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testGetByIdOutsideFolder() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setMethods(['getMountsIn', 'getMount'])
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
|
|
@ -650,10 +605,7 @@ class FolderTest extends NodeTest {
|
|||
|
||||
public function testGetByIdMultipleStorages() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setMethods(['getMountsIn', 'getMount'])
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
|
|
@ -715,10 +667,7 @@ class FolderTest extends NodeTest {
|
|||
public function testGetUniqueName($name, $existingFiles, $expected) {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
$folderPath = '/bar/foo';
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setMethods(['getUser', 'getMountsIn', 'getMount'])
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
|
|
@ -742,10 +691,7 @@ class FolderTest extends NodeTest {
|
|||
public function testRecent(): void {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
$folderPath = '/bar/foo';
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
/** @var \PHPUnit\Framework\MockObject\MockObject|\OC\Files\Node\Root $root */
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setMethods(['getUser', 'getMountsIn', 'getMount'])
|
||||
|
|
@ -810,10 +756,7 @@ class FolderTest extends NodeTest {
|
|||
public function testRecentFolder() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
$folderPath = '/bar/foo';
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
/** @var \PHPUnit\Framework\MockObject\MockObject|\OC\Files\Node\Root $root */
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setMethods(['getUser', 'getMountsIn', 'getMount'])
|
||||
|
|
@ -877,10 +820,7 @@ class FolderTest extends NodeTest {
|
|||
public function testRecentJail() {
|
||||
$manager = $this->createMock(Manager::class);
|
||||
$folderPath = '/bar/foo';
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
/** @var \PHPUnit\Framework\MockObject\MockObject|\OC\Files\Node\Root $root */
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setMethods(['getUser', 'getMountsIn', 'getMount'])
|
||||
|
|
@ -966,10 +906,7 @@ class FolderTest extends NodeTest {
|
|||
}
|
||||
|
||||
$manager = $this->createMock(Manager::class);
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->createMock(View::class);
|
||||
$view = $this->getRootViewMock();
|
||||
$root = $this->getMockBuilder(Root::class)
|
||||
->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager, $this->eventDispatcher])
|
||||
->getMock();
|
||||
|
|
|
|||
|
|
@ -54,6 +54,9 @@ abstract class NodeTest extends \Test\TestCase {
|
|||
$this->view = $this->getMockBuilder(View::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->view->expects($this->any())
|
||||
->method('getRoot')
|
||||
->willReturn('');
|
||||
$this->userMountCache = $this->getMockBuilder('\OCP\Files\Config\IUserMountCache')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
|
@ -65,6 +68,17 @@ abstract class NodeTest extends \Test\TestCase {
|
|||
->getMock();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
protected function getRootViewMock() {
|
||||
$view = $this->createMock(View::class);
|
||||
$view->expects($this->any())
|
||||
->method('getRoot')
|
||||
->willReturn('');
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param IRootFolder $root
|
||||
* @param View $view
|
||||
|
|
|
|||
|
|
@ -52,6 +52,17 @@ class RootTest extends \Test\TestCase {
|
|||
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
protected function getRootViewMock() {
|
||||
$view = $this->createMock(View::class);
|
||||
$view->expects($this->any())
|
||||
->method('getRoot')
|
||||
->willReturn('');
|
||||
return $view;
|
||||
}
|
||||
|
||||
protected function getFileInfo($data) {
|
||||
return new FileInfo('', null, '', $data, null);
|
||||
}
|
||||
|
|
@ -63,12 +74,7 @@ class RootTest extends \Test\TestCase {
|
|||
$storage = $this->getMockBuilder('\OC\Files\Storage\Storage')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->getMockBuilder(View::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$view = $this->getRootViewMock();
|
||||
$root = new \OC\Files\Node\Root(
|
||||
$this->manager,
|
||||
$view,
|
||||
|
|
@ -100,12 +106,7 @@ class RootTest extends \Test\TestCase {
|
|||
$storage = $this->getMockBuilder('\OC\Files\Storage\Storage')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->getMockBuilder(View::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$view = $this->getRootViewMock();
|
||||
$root = new \OC\Files\Node\Root(
|
||||
$this->manager,
|
||||
$view,
|
||||
|
|
@ -129,12 +130,7 @@ class RootTest extends \Test\TestCase {
|
|||
public function testGetInvalidPath() {
|
||||
$this->expectException(\OCP\Files\NotPermittedException::class);
|
||||
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->getMockBuilder(View::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$view = $this->getRootViewMock();
|
||||
$root = new \OC\Files\Node\Root(
|
||||
$this->manager,
|
||||
$view,
|
||||
|
|
@ -152,12 +148,7 @@ class RootTest extends \Test\TestCase {
|
|||
public function testGetNoStorages() {
|
||||
$this->expectException(\OCP\Files\NotFoundException::class);
|
||||
|
||||
/**
|
||||
* @var \OC\Files\View | \PHPUnit\Framework\MockObject\MockObject $view
|
||||
*/
|
||||
$view = $this->getMockBuilder(View::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$view = $this->getRootViewMock();
|
||||
$root = new \OC\Files\Node\Root(
|
||||
$this->manager,
|
||||
$view,
|
||||
|
|
@ -174,7 +165,7 @@ class RootTest extends \Test\TestCase {
|
|||
public function testGetUserFolder() {
|
||||
$root = new \OC\Files\Node\Root(
|
||||
$this->manager,
|
||||
$this->createMock(View::class),
|
||||
$this->getRootViewMock(),
|
||||
$this->user,
|
||||
$this->userMountCache,
|
||||
$this->logger,
|
||||
|
|
@ -215,7 +206,7 @@ class RootTest extends \Test\TestCase {
|
|||
|
||||
$root = new \OC\Files\Node\Root(
|
||||
$this->createMock(Manager::class),
|
||||
$this->createMock(View::class),
|
||||
$this->getRootViewMock(),
|
||||
null,
|
||||
$this->userMountCache,
|
||||
$this->logger,
|
||||
|
|
|
|||
Loading…
Reference in a new issue