Example #1
0
 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);
 }