diff options
author | Vincent Petry <pvince81@owncloud.com> | 2013-11-27 18:48:24 +0100 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2013-11-27 21:34:51 +0100 |
commit | 43b1cf798839888e9e7266d80f55f6ce6f74d852 (patch) | |
tree | f4c37388ce477881e14ffb80f157ae91bfadc466 | |
parent | 40231c08cf617b5909dee778372d6b1b8cdd5bcf (diff) | |
download | nextcloud-server-43b1cf798839888e9e7266d80f55f6ce6f74d852.tar.gz nextcloud-server-43b1cf798839888e9e7266d80f55f6ce6f74d852.zip |
Redetect mime type whenever extension is renamed
-rw-r--r-- | lib/private/files/cache/updater.php | 6 | ||||
-rw-r--r-- | tests/lib/files/cache/updater.php | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/private/files/cache/updater.php b/lib/private/files/cache/updater.php index d45c5e17fc8..9ef147aa157 100644 --- a/lib/private/files/cache/updater.php +++ b/lib/private/files/cache/updater.php @@ -86,6 +86,12 @@ class Updater { if ($storageFrom === $storageTo) { $cache = $storageFrom->getCache($internalFrom); $cache->move($internalFrom, $internalTo); + if (pathinfo($internalFrom, PATHINFO_EXTENSION) !== pathinfo($internalTo, PATHINFO_EXTENSION)) { + // redetect mime type change + $mimeType = $storageTo->getMimeType($internalTo); + $fileId = $storageTo->getCache()->getId($internalTo); + $storageTo->getCache()->update($fileId, array('mimetype' => $mimeType)); + } $cache->correctFolderSize($internalFrom); $cache->correctFolderSize($internalTo); self::correctFolder($from, time()); diff --git a/tests/lib/files/cache/updater.php b/tests/lib/files/cache/updater.php index e3d3aae818d..91e384e12af 100644 --- a/tests/lib/files/cache/updater.php +++ b/tests/lib/files/cache/updater.php @@ -202,6 +202,14 @@ class Updater extends \PHPUnit_Framework_TestCase { $this->assertNotEquals($rootCachedData['etag'], $cachedData['etag']); } + public function testRenameExtension() { + $fooCachedData = $this->cache->get('foo.txt'); + $this->assertEquals('text/plain', $fooCachedData['mimetype']); + Filesystem::rename('foo.txt', 'foo.abcd'); + $fooCachedData = $this->cache->get('foo.abcd'); + $this->assertEquals('application/octet-stream', $fooCachedData['mimetype']); + } + public function testRenameWithMountPoints() { $storage2 = new \OC\Files\Storage\Temporary(array()); $cache2 = $storage2->getCache(); |