Merge pull request #5263 from owncloud/fixing-5255-master

Proper behavior of resolvePath()
This commit is contained in:
VicDeo 2013-10-10 09:27:45 -07:00
commit 26c0007a5f
2 changed files with 37 additions and 1 deletions

View File

@ -110,7 +110,9 @@ class View {
* @return array consisting of the storage and the internal path
*/
public function resolvePath($path) {
return Filesystem::resolvePath($this->getAbsolutePath($path));
$a = $this->getAbsolutePath($path);
$p = Filesystem::normalizePath($a);
return Filesystem::resolvePath($p);
}
/**

View File

@ -434,4 +434,38 @@ class View extends \PHPUnit_Framework_TestCase {
$view->file_put_contents('/asd.txt', 'foo');
$this->assertNull($this->createHookPath);
}
/**
* @dataProvider resolvePathTestProvider
*/
public function testResolvePath($expected, $pathToTest) {
$storage1 = $this->getTestStorage();
\OC\Files\Filesystem::mount($storage1, array(), '/');
$view = new \OC\Files\View('');
$result = $view->resolvePath($pathToTest);
$this->assertEquals($expected, $result[1]);
$exists = $view->file_exists($pathToTest);
$this->assertTrue($exists);
$exists = $view->file_exists($result[1]);
$this->assertTrue($exists);
}
function resolvePathTestProvider() {
return array(
array('foo.txt', 'foo.txt'),
array('foo.txt', '/foo.txt'),
array('folder', 'folder'),
array('folder', '/folder'),
array('folder', 'folder/'),
array('folder', '/folder/'),
array('folder/bar.txt', 'folder/bar.txt'),
array('folder/bar.txt', '/folder/bar.txt'),
array('', ''),
array('', '/'),
);
}
}