Merge pull request #19833 from owncloud/fix_view_rmdir

Removemount expects absolutePath
This commit is contained in:
Robin Appelman 2015-10-19 16:22:42 +02:00
commit 9c5337ca3e
2 changed files with 50 additions and 1 deletions

View file

@ -290,7 +290,7 @@ class View {
$absolutePath = $this->getAbsolutePath($path);
$mount = Filesystem::getMountManager()->find($absolutePath);
if ($mount->getInternalPath($absolutePath) === '') {
return $this->removeMount($mount, $path);
return $this->removeMount($mount, $absolutePath);
}
if ($this->is_dir($path)) {
return $this->basicOperation('rmdir', $path, array('delete'));

View file

@ -2275,4 +2275,53 @@ class View extends \Test\TestCase {
}
return null;
}
public function testRemoveMoveableMountPoint() {
$mountPoint = '/' . $this->user . '/files/mount/';
// Mock the mount point
$mount = $this->getMockBuilder('\Test\TestMoveableMountPoint')
->disableOriginalConstructor()
->getMock();
$mount->expects($this->once())
->method('getMountPoint')
->willReturn($mountPoint);
$mount->expects($this->once())
->method('removeMount')
->willReturn('foo');
$mount->expects($this->any())
->method('getInternalPath')
->willReturn('');
// Register mount
\OC\Files\Filesystem::getMountManager()->addMount($mount);
// Listen for events
$eventHandler = $this->getMockBuilder('\stdclass')
->setMethods(['umount', 'post_umount'])
->getMock();
$eventHandler->expects($this->once())
->method('umount')
->with([\OC\Files\Filesystem::signal_param_path => '/mount']);
$eventHandler->expects($this->once())
->method('post_umount')
->with([\OC\Files\Filesystem::signal_param_path => '/mount']);
\OCP\Util::connectHook(
\OC\Files\Filesystem::CLASSNAME,
'umount',
$eventHandler,
'umount'
);
\OCP\Util::connectHook(
\OC\Files\Filesystem::CLASSNAME,
'post_umount',
$eventHandler,
'post_umount'
);
//Delete the mountpoint
$view = new \OC\Files\View('/' . $this->user . '/files');
$this->assertEquals('foo', $view->rmdir('mount'));
}
}