public function testGetNodeForPathRoot() { $path = '/'; $storage = new Temporary([]); $view = $this->getMock('\OC\Files\View', ['resolvePath']); $view->expects($this->any()) ->method('resolvePath') ->will($this->returnCallback(function ($path) use ($storage) { return [$storage, ltrim($path, '/')]; })); $rootNode = $this->getMockBuilder('\OC\Connector\Sabre\Directory') ->disableOriginalConstructor() ->getMock(); $mountManager = $this->getMock('\OC\Files\Mount\Manager'); $tree = new \OC\Connector\Sabre\ObjectTree(); $tree->init($rootNode, $view, $mountManager); $this->assertInstanceOf('\Sabre\DAV\INode', $tree->getNodeForPath($path)); }
/** * @dataProvider nodeForPathProvider */ public function testGetNodeForPath($inputFileName, $fileInfoQueryPath, $outputFileName, $type, $enableChunkingHeader) { if ($enableChunkingHeader) { $_SERVER['HTTP_OC_CHUNKED'] = true; } $rootNode = $this->getMockBuilder('\\OC\\Connector\\Sabre\\Directory')->disableOriginalConstructor()->getMock(); $mountManager = $this->getMock('\\OC\\Files\\Mount\\Manager'); $view = $this->getMock('\\OC\\Files\\View'); $fileInfo = $this->getMock('\\OCP\\Files\\FileInfo'); $fileInfo->expects($this->once())->method('getType')->will($this->returnValue($type)); $fileInfo->expects($this->once())->method('getName')->will($this->returnValue($outputFileName)); $view->expects($this->once())->method('getFileInfo')->with($fileInfoQueryPath)->will($this->returnValue($fileInfo)); $tree = new \OC\Connector\Sabre\ObjectTree(); $tree->init($rootNode, $view, $mountManager); $node = $tree->getNodeForPath($inputFileName); $this->assertNotNull($node); $this->assertEquals($outputFileName, $node->getName()); if ($type === 'file') { $this->assertTrue($node instanceof \OC\Connector\Sabre\File); } else { $this->assertTrue($node instanceof \OC\Connector\Sabre\Directory); } unset($_SERVER['HTTP_OC_CHUNKED']); }