Merge pull request #21527 from owncloud/remove_all_avatars
Remove all cache avatars on avatar deletion
This commit is contained in:
commit
a1a8a06042
|
@ -124,12 +124,14 @@ class Avatar implements \OCP\IAvatar {
|
|||
* @return void
|
||||
*/
|
||||
public function remove () {
|
||||
try {
|
||||
$this->folder->get('avatar.jpg')->delete();
|
||||
} catch (\OCP\Files\NotFoundException $e) {}
|
||||
try {
|
||||
$this->folder->get('avatar.png')->delete();
|
||||
} catch (\OCP\Files\NotFoundException $e) {}
|
||||
$regex = '/^avatar\.([0-9]+\.)?(jpg|png)$/';
|
||||
$avatars = $this->folder->search('avatar');
|
||||
|
||||
foreach ($avatars as $avatar) {
|
||||
if (preg_match($regex, $avatar->getName())) {
|
||||
$avatar->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -110,13 +110,29 @@ class AvatarTest extends \Test\TestCase {
|
|||
}
|
||||
|
||||
public function testSetAvatar() {
|
||||
$oldFile = $this->getMock('\OCP\Files\File');
|
||||
$this->folder->method('get')
|
||||
->will($this->returnValueMap([
|
||||
['avatar.jpg', $oldFile],
|
||||
['avatar.png', $oldFile],
|
||||
]));
|
||||
$oldFile->expects($this->exactly(2))->method('delete');
|
||||
$avatarFileJPG = $this->getMock('\OCP\Files\File');
|
||||
$avatarFileJPG->method('getName')
|
||||
->willReturn('avatar.jpg');
|
||||
$avatarFileJPG->expects($this->once())->method('delete');
|
||||
|
||||
$avatarFilePNG = $this->getMock('\OCP\Files\File');
|
||||
$avatarFilePNG->method('getName')
|
||||
->willReturn('avatar.png');
|
||||
$avatarFilePNG->expects($this->once())->method('delete');
|
||||
|
||||
$resizedAvatarFile = $this->getMock('\OCP\Files\File');
|
||||
$resizedAvatarFile->method('getName')
|
||||
->willReturn('avatar.32.jpg');
|
||||
$resizedAvatarFile->expects($this->once())->method('delete');
|
||||
|
||||
$nonAvatarFile = $this->getMock('\OCP\Files\File');
|
||||
$nonAvatarFile->method('getName')
|
||||
->willReturn('avatarX');
|
||||
$nonAvatarFile->expects($this->never())->method('delete');
|
||||
|
||||
$this->folder->method('search')
|
||||
->with('avatar')
|
||||
->willReturn([$avatarFileJPG, $avatarFilePNG, $resizedAvatarFile, $nonAvatarFile]);
|
||||
|
||||
$newFile = $this->getMock('\OCP\Files\File');
|
||||
$this->folder->expects($this->once())
|
||||
|
|
Loading…
Reference in New Issue