/** * Returns Gravatar-Image-tag * * @param string $email * @param array $params * @return string */ public function Gravatar($email, $size = null, $rating = null, $default = null, $ssl = null, $separator = '&', array $params = array()) { $params['src'] = $this->_service->getUri($email, $size, $rating, $default, $ssl, $separator); if (!isset($params['alt'])) { $params['alt'] = 'Gravatar ' . $this->_service->getGravatarHash($email); } $image = '<img '; $image .= $this->_htmlAttribs($params); $image .= $this->getClosingBracket(); return $image; }
/** * @covers Robo47_View_Helper_Gravatar::Gravatar * @dataProvider gravatarProvider */ public function testGravatar($email, $size, $rating, $default, $ssl, $separator, $params) { $view = new Zend_View(); $view->setEncoding('utf-8'); $view->Doctype(Zend_View_Helper_Doctype::XHTML1_STRICT); $service = new Robo47_Service_Gravatar(); $helper = new Robo47_View_Helper_Gravatar($service); $helper->setView($view); $gravatarImageTag = $helper->Gravatar($email, $size, $rating, $default, $ssl, $separator, $params); $src = $service->getUri($email, $size, $rating, $default, $ssl, $separator); $alt = 'Gravatar ' . $service->getGravatarHash($email); libxml_use_internal_errors(true); $dom = new DOMDocument(); $dom->loadHTML('<html><head><title></title></head><body>' . $gravatarImageTag . '</body></html>'); libxml_use_internal_errors(false); $nodes = $dom->getElementsByTagName('img'); $this->assertEquals(1, $nodes->length); $image = $nodes->item(0); $this->assertTrue($image->hasAttribute('src'), 'Image has no attribute "href"'); $this->assertTrue($image->hasAttribute('alt'), 'Image has no alt'); foreach ($params as $param => $value) { $this->assertTrue($image->hasAttribute($param), 'Image has no attribute "' . $param . '"'); $this->assertEquals($value, $image->getAttribute($param), 'Image attribute "' . $param . '" has wrong value'); } $srcAttribute = $image->getAttribute('src'); $this->assertEquals($src, $srcAttribute, 'Image attribute "src" has wrong value'); if (isset($params['alt'])) { $altAttribute = $image->getAttribute('alt'); $this->assertEquals($params['alt'], $altAttribute, 'Image attribute "alt" has wrong value'); } else { $altAttribute = $image->getAttribute('alt'); $this->assertEquals($alt, $altAttribute, 'Image attribute "alt" has wrong value'); } }
/** * @dataProvider gravatarHashProvider * @covers Robo47_Service_Gravatar::getGravatarHash */ public function testGetGravatarHash($email) { $service = new Robo47_Service_Gravatar(); $this->assertEquals(md5(trim(strtolower($email))), $service->getGravatarHash($email)); }