Skip to content
Snippets Groups Projects
Commit dac78284 authored by Vincent Petry's avatar Vincent Petry
Browse files

Return tags after rename

To make it possible for the web UI to correctly display the tag/favorite
information after a rename, this information is now returned in the
rename response
parent 331d73c3
Branches
No related tags found
No related merge requests found
...@@ -104,9 +104,10 @@ class App { ...@@ -104,9 +104,10 @@ class App {
) { ) {
// successful rename // successful rename
$meta = $this->view->getFileInfo($normalizedNewPath); $meta = $this->view->getFileInfo($normalizedNewPath);
$fileinfo = \OCA\Files\Helper::formatFileInfo($meta); $meta = \OCA\Files\Helper::populateTags(array($meta));
$fileInfo = \OCA\Files\Helper::formatFileInfo(current($meta));
$result['success'] = true; $result['success'] = true;
$result['data'] = $fileinfo; $result['data'] = $fileInfo;
} else { } else {
// rename failed // rename failed
$result['data'] = array( $result['data'] = array(
......
...@@ -117,11 +117,80 @@ class Test_OC_Files_App_Rename extends \Test\TestCase { ...@@ -117,11 +117,80 @@ class Test_OC_Files_App_Rename extends \Test\TestCase {
$this->assertEquals(18, $result['data']['size']); $this->assertEquals(18, $result['data']['size']);
$this->assertEquals('httpd/unix-directory', $result['data']['mimetype']); $this->assertEquals('httpd/unix-directory', $result['data']['mimetype']);
$this->assertEquals('abcdef', $result['data']['etag']); $this->assertEquals('abcdef', $result['data']['etag']);
$this->assertFalse(isset($result['data']['tags']));
$icon = \OC_Helper::mimetypeIcon('dir'); $icon = \OC_Helper::mimetypeIcon('dir');
$icon = substr($icon, 0, -3) . 'svg'; $icon = substr($icon, 0, -3) . 'svg';
$this->assertEquals($icon, $result['data']['icon']); $this->assertEquals($icon, $result['data']['icon']);
} }
/**
* test rename of file with tag
*/
function testRenameFileWithTag() {
$taggerMock = $this->getMock('\OCP\ITags');
$taggerMock->expects($this->any())
->method('getTagsForObjects')
->with(array(123))
->will($this->returnValue(array(123 => array('tag1', 'tag2'))));
$tagManagerMock = $this->getMock('\OCP\ITagManager');
$tagManagerMock->expects($this->any())
->method('load')
->with('files')
->will($this->returnValue($taggerMock));
$oldTagManager = \OC::$server->query('TagManager');
\OC::$server->registerService('TagManager', function ($c) use ($tagManagerMock) {
return $tagManagerMock;
});
$dir = '/';
$oldname = 'oldname.txt';
$newname = 'newname.txt';
$this->viewMock->expects($this->any())
->method('file_exists')
->with($this->anything())
->will($this->returnValueMap(array(
array('/', true),
array('/oldname.txt', true)
)));
$this->viewMock->expects($this->any())
->method('getFileInfo')
->will($this->returnValue(new \OC\Files\FileInfo(
'/new_name.txt',
new \OC\Files\Storage\Local(array('datadir' => '/')),
'/',
array(
'fileid' => 123,
'type' => 'file',
'mimetype' => 'text/plain',
'mtime' => 0,
'permissions' => 31,
'size' => 18,
'etag' => 'abcdef',
'directory' => '/',
'name' => 'new_name.txt',
), null)));
$result = $this->files->rename($dir, $oldname, $newname);
$this->assertTrue($result['success']);
$this->assertEquals(123, $result['data']['id']);
$this->assertEquals('new_name.txt', $result['data']['name']);
$this->assertEquals(18, $result['data']['size']);
$this->assertEquals('text/plain', $result['data']['mimetype']);
$this->assertEquals('abcdef', $result['data']['etag']);
$this->assertEquals(array('tag1', 'tag2'), $result['data']['tags']);
$icon = \OC_Helper::mimetypeIcon('text');
$icon = substr($icon, 0, -3) . 'svg';
$this->assertEquals($icon, $result['data']['icon']);
\OC::$server->registerService('TagManager', function ($c) use ($oldTagManager) {
return $oldTagManager;
});
}
/** /**
* Test rename inside a folder that doesn't exist any more * Test rename inside a folder that doesn't exist any more
*/ */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment