diff options
author | Joas Schilling <213943+nickvergessen@users.noreply.github.com> | 2022-02-07 19:48:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-07 19:48:29 +0100 |
commit | 4c8c0031e9c1f10ffa6880e8aaf4695318e2ec9b (patch) | |
tree | bad9809f12f84a2ff327abcced93be8250b31e9a /tests/Core/Controller/AvatarControllerTest.php | |
parent | 71d1fd20907af84ba3dca08f180dcbcd435e5956 (diff) | |
parent | 6dd60b6d304648acf542a84ba76ad5fc0b693b43 (diff) | |
download | nextcloud-server-4c8c0031e9c1f10ffa6880e8aaf4695318e2ec9b.tar.gz nextcloud-server-4c8c0031e9c1f10ffa6880e8aaf4695318e2ec9b.zip |
Merge pull request #31010 from nextcloud/techdebt/noid/fixed-avatar-sizes
Only allow avatars in 64 and 512 pixel size
Diffstat (limited to 'tests/Core/Controller/AvatarControllerTest.php')
-rw-r--r-- | tests/Core/Controller/AvatarControllerTest.php | 62 |
1 files changed, 51 insertions, 11 deletions
diff --git a/tests/Core/Controller/AvatarControllerTest.php b/tests/Core/Controller/AvatarControllerTest.php index 35d89c24a45..8d3cd73a656 100644 --- a/tests/Core/Controller/AvatarControllerTest.php +++ b/tests/Core/Controller/AvatarControllerTest.php @@ -193,46 +193,86 @@ class AvatarControllerTest extends \Test\TestCase { $this->assertEquals(Http::STATUS_NOT_FOUND, $response->getStatus()); } + public function testGetAvatarSize64(): void { + $this->avatarMock->expects($this->once()) + ->method('getFile') + ->with($this->equalTo(64)) + ->willReturn($this->avatarFile); + + $this->avatarManager->method('getAvatar')->willReturn($this->avatarMock); + + $this->logger->expects($this->never()) + ->method('debug'); + + $this->avatarController->getAvatar('userId', 64); + } + + public function testGetAvatarSize512(): void { + $this->avatarMock->expects($this->once()) + ->method('getFile') + ->with($this->equalTo(512)) + ->willReturn($this->avatarFile); + + $this->avatarManager->method('getAvatar')->willReturn($this->avatarMock); + + $this->logger->expects($this->never()) + ->method('debug'); + + $this->avatarController->getAvatar('userId', 512); + } + /** - * Make sure we get the correct size + * Small sizes return 64 and generate a log */ - public function testGetAvatarSize() { + public function testGetAvatarSizeTooSmall(): void { $this->avatarMock->expects($this->once()) ->method('getFile') - ->with($this->equalTo(32)) + ->with($this->equalTo(64)) ->willReturn($this->avatarFile); $this->avatarManager->method('getAvatar')->willReturn($this->avatarMock); + $this->logger->expects($this->once()) + ->method('debug') + ->with('Avatar requested in deprecated size 32'); + $this->avatarController->getAvatar('userId', 32); } /** - * We cannot get avatars that are 0 or negative + * Avatars between 64 and 512 are upgraded to 512 */ - public function testGetAvatarSizeMin() { + public function testGetAvatarSizeBetween(): void { $this->avatarMock->expects($this->once()) ->method('getFile') - ->with($this->equalTo(64)) + ->with($this->equalTo(512)) ->willReturn($this->avatarFile); $this->avatarManager->method('getAvatar')->willReturn($this->avatarMock); - $this->avatarController->getAvatar('userId', 0); + $this->logger->expects($this->once()) + ->method('debug') + ->with('Avatar requested in deprecated size 65'); + + $this->avatarController->getAvatar('userId', 65); } /** - * We do not support avatars larger than 2048*2048 + * We do not support avatars larger than 512 */ - public function testGetAvatarSizeMax() { + public function testGetAvatarSizeTooBig(): void { $this->avatarMock->expects($this->once()) ->method('getFile') - ->with($this->equalTo(2048)) + ->with($this->equalTo(512)) ->willReturn($this->avatarFile); $this->avatarManager->method('getAvatar')->willReturn($this->avatarMock); - $this->avatarController->getAvatar('userId', 2049); + $this->logger->expects($this->once()) + ->method('debug') + ->with('Avatar requested in deprecated size 513'); + + $this->avatarController->getAvatar('userId', 513); } /** |