Merge pull request #10186 from owncloud/versioning_fix_path
[versioning] make sure that getVersions() return the correct path
This commit is contained in:
commit
6599dc1b5c
|
@ -265,7 +265,7 @@ class Storage {
|
|||
$pathinfo = pathinfo($filename);
|
||||
$versionedFile = $pathinfo['basename'];
|
||||
|
||||
$dir = self::VERSIONS_ROOT . '/' . $pathinfo['dirname'];
|
||||
$dir = \OC\Files\Filesystem::normalizePath(self::VERSIONS_ROOT . '/' . $pathinfo['dirname']);
|
||||
|
||||
$dirContent = false;
|
||||
if ($view->is_dir($dir)) {
|
||||
|
@ -293,7 +293,7 @@ class Storage {
|
|||
} else {
|
||||
$versions[$key]['preview'] = \OCP\Util::linkToRoute('core_ajax_versions_preview', array('file' => $userFullPath, 'version' => $timestamp));
|
||||
}
|
||||
$versions[$key]['path'] = $filename;
|
||||
$versions[$key]['path'] = $pathinfo['dirname'] . '/' . $filename;
|
||||
$versions[$key]['name'] = $versionedFile;
|
||||
$versions[$key]['size'] = $view->filesize($dir . '/' . $entryName);
|
||||
}
|
||||
|
|
|
@ -266,6 +266,40 @@ class Test_Files_Versioning extends \PHPUnit_Framework_TestCase {
|
|||
\OC\Files\Filesystem::unlink('test2.txt');
|
||||
}
|
||||
|
||||
/**
|
||||
* test if we find all versions and if the versions array contain
|
||||
* the correct 'path' and 'name'
|
||||
*/
|
||||
public function testGetVersions() {
|
||||
|
||||
$t1 = time();
|
||||
// second version is two weeks older, this way we make sure that no
|
||||
// version will be expired
|
||||
$t2 = $t1 - 60 * 60 * 24 * 14;
|
||||
|
||||
// create some versions
|
||||
$v1 = self::USERS_VERSIONS_ROOT . '/subfolder/test.txt.v' . $t1;
|
||||
$v2 = self::USERS_VERSIONS_ROOT . '/subfolder/test.txt.v' . $t2;
|
||||
|
||||
$this->rootView->mkdir(self::USERS_VERSIONS_ROOT . '/subfolder/');
|
||||
|
||||
$this->rootView->file_put_contents($v1, 'version1');
|
||||
$this->rootView->file_put_contents($v2, 'version2');
|
||||
|
||||
// execute copy hook of versions app
|
||||
$versions = \OCA\Files_Versions\Storage::getVersions(self::TEST_VERSIONS_USER, '/subfolder/test.txt');
|
||||
|
||||
$this->assertSame(2, count($versions));
|
||||
|
||||
foreach ($versions as $version) {
|
||||
$this->assertSame('/subfolder/test.txt', $version['path']);
|
||||
$this->assertSame('test.txt', $version['name']);
|
||||
}
|
||||
|
||||
//cleanup
|
||||
$this->rootView->deleteAll(self::USERS_VERSIONS_ROOT . '/subfolder');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $user
|
||||
* @param bool $create
|
||||
|
|
Loading…
Reference in New Issue