['Content-Type' => $image->mimeType()]);
$resp->setETag(crc32($image->data()));
} else {
- $resp = new DataResponse(
- ['data' => [
- 'displayname' => $this->userManager->get($userId)->getDisplayName()
- ]
- ]);
+ $user = $this->userManager->get($userId);
+ $userName = $user ? $user->getDisplayName() : '';
+ $resp = new DataResponse([
+ 'data' => [
+ 'displayname' => $userName,
+ ],
+ ]);
}
$resp->addHeader('Pragma', 'public');
$this->container['Request'] = $this->getMockBuilder('OCP\IRequest')
->disableOriginalConstructor()->getMock();
-
$this->avatarMock = $this->getMockBuilder('OCP\IAvatar')
->disableOriginalConstructor()->getMock();
$this->userMock = $this->getMockBuilder('OCP\IUser')
$this->avatarController = $this->container['AvatarController'];
- // Store current User
+ // Store current User
$this->oldUser = \OC_User::getUser();
// Create a dummy user
- $this->user = \OC::$server->getSecureRandom()->getLowStrengthGenerator()->generate(12, ISecureRandom::CHAR_LOWER);
+ $this->user = $this->getUniqueID('user');
OC::$server->getUserManager()->createUser($this->user, $this->user);
\OC_Util::tearDownFS();
// Configure userMock
$this->userMock->method('getDisplayName')->willReturn($this->user);
$this->userMock->method('getUID')->willReturn($this->user);
- $this->container['UserManager']->method('get')->willReturn($this->userMock);
+ $this->container['UserManager']->method('get')
+ ->willReturnMap([[$this->user, $this->userMock]]);
$this->container['UserSession']->method('getUser')->willReturn($this->userMock);
}
}
/**
- * Fetch the users avatar
+ * Fetch the user's avatar
*/
public function testGetAvatar() {
$image = new Image(OC::$SERVERROOT.'/tests/data/testimage.jpg');
$this->assertEquals(crc32($response->getData()), $response->getEtag());
}
+ /**
+ * Fetch the avatar of a non-existing user
+ */
+ public function testGetAvatarNoUser() {
+ $image = new Image(OC::$SERVERROOT.'/tests/data/testimage.jpg');
+ $this->avatarMock->method('get')->willReturn($image);
+ $this->container['AvatarManager']->method('getAvatar')->willReturn($this->avatarMock);
+
+ $response = $this->avatarController->getAvatar($this->user . 'doesnotexist', 32);
+
+ $this->assertEquals($response->getStatus(), Http::STATUS_OK);
+
+ $image2 = new Image($response->getData());
+ $this->assertEquals($image->mimeType(), $image2->mimeType());
+ $this->assertEquals(crc32($response->getData()), $response->getEtag());
+ }
+
/**
* Make sure we get the correct size
*/