aboutsummaryrefslogtreecommitdiffstats
path: root/tests/Core/Controller/AvatarControllerTest.php
diff options
context:
space:
mode:
authorJoas Schilling <213943+nickvergessen@users.noreply.github.com>2022-02-07 19:48:29 +0100
committerGitHub <noreply@github.com>2022-02-07 19:48:29 +0100
commit4c8c0031e9c1f10ffa6880e8aaf4695318e2ec9b (patch)
treebad9809f12f84a2ff327abcced93be8250b31e9a /tests/Core/Controller/AvatarControllerTest.php
parent71d1fd20907af84ba3dca08f180dcbcd435e5956 (diff)
parent6dd60b6d304648acf542a84ba76ad5fc0b693b43 (diff)
downloadnextcloud-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.php62
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);
}
/**