public function testAvatarForUser() { //Create a new user and confirm that gets the default avatar $user = new User(); $user->username = '******'; $user->lastName = 'User'; $this->assertTrue($user->save()); $this->assertContains('width="250" height="250" src="http://www.gravatar.com/avatar/?s=250&r=g&d=mm', $user->getAvatarImage()); //When calling getAvatarImage it should return the same url to avoid querying gravatar twice $this->assertContains('width="50" height="50" src="http://www.gravatar.com/avatar/?s=250&r=g&d=mm', $user->getAvatarImage(50)); unset($user); //Add avatar info to the user and confirm it gets saved $user = User::getByUsername('avatar'); $avatar = array('avatarType' => 1); $user->serializeAndSetAvatarData($avatar); $this->assertEquals(serialize($avatar), $user->serializedAvatarData); $this->assertTrue($user->save()); unset($user); $user = User::getByUsername('avatar'); $this->assertContains('width="250" height="250" src="http://www.gravatar.com/avatar/?s=250&r=g&d=mm', $user->getAvatarImage()); $this->assertContains('width="50" height="50" src="http://www.gravatar.com/avatar/?s=250&r=g&d=mm', $user->getAvatarImage(50)); unset($user); //Change avatar to primary email address $user = new User(); $user->username = '******'; $user->lastName = 'User'; $emailAddress = '*****@*****.**'; $user->primaryEmail->emailAddress = $emailAddress; $user->primaryEmail->optOut = 1; $user->primaryEmail->isInvalid = 0; $avatar = array('avatarType' => 2); $user->serializeAndSetAvatarData($avatar); $this->assertContains(serialize($avatar), $user->serializedAvatarData); $this->assertTrue($user->save()); unset($user); $user = User::getByUsername('avatar2'); $avatarUrl = 'width="250" height="250" src="http://www.gravatar.com/avatar/' . md5(strtolower(trim($emailAddress))) . '?s=250&d=identicon&r=g'; // Not Coding Standard $this->assertContains($avatarUrl, $user->getAvatarImage()); $avatarUrl = 'width="5" height="5" src="http://www.gravatar.com/avatar/' . md5(strtolower(trim($emailAddress))) . '?s=250&d=identicon&r=g'; // Not Coding Standard $this->assertContains($avatarUrl, $user->getAvatarImage(5)); unset($user); //Change avatar to custom avatar email address $user = new User(); $user->username = '******'; $user->lastName = 'User'; $emailAddress = '*****@*****.**'; $avatar = array('avatarType' => 3, 'customAvatarEmailAddress' => $emailAddress); $user->serializeAndSetAvatarData($avatar); $this->assertEquals(serialize($avatar), $user->serializedAvatarData); $this->assertTrue($user->save()); unset($user); $user = User::getByUsername('avatar3'); $avatarUrl = 'width="250" height="250" src="http://www.gravatar.com/avatar/' . md5(strtolower(trim($emailAddress))) . "?s=250&d=identicon&r=g"; // Not Coding Standard $this->assertContains($avatarUrl, $user->getAvatarImage()); $avatarUrl = 'width="2500" height="2500" src="http://www.gravatar.com/avatar/' . md5(strtolower(trim($emailAddress))) . "?s=250&d=identicon&r=g"; // Not Coding Standard $this->assertContains($avatarUrl, $user->getAvatarImage(2500)); unset($user); }