Exemplo n.º 1
0
 /**
  * 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;
 }
Exemplo n.º 2
0
 /**
  * @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');
     }
 }
Exemplo n.º 3
0
 /**
  * @covers Robo47_Service_Gravatar::getUri
  * @covers Robo47_Service_Gravatar::_getUri
  * @covers Robo47_Service_Gravatar::_filterSsl
  * @covers Robo47_Service_Gravatar::_filterSize
  * @covers Robo47_Service_Gravatar::_filterRating
  * @covers Robo47_Service_Gravatar::_filterDefault
  */
 public function testGetUriWithoutSSL()
 {
     $options = array('default' => 'http://www.example.com/foo.jpg', 'rating' => Robo47_Service_Gravatar::RATING_X, 'size' => 200);
     $service = new Robo47_Service_Gravatar($options);
     $uri = $service->getUri('*****@*****.**', null, null, null, null, '&');
     $parts = parse_url($uri);
     $this->assertEquals('http', $parts['scheme'], 'wrong scheme');
     $this->assertEquals('www.gravatar.com', $parts['host'], 'wrong host');
     $this->assertEquals('/avatar/' . md5('*****@*****.**'), $parts['path'], 'wrong path');
     $queryParts = array();
     parse_str($parts['query'], $queryParts);
     $this->assertArrayHasKey('r', $queryParts, 'Query misses variable for rating (r)');
     $this->assertArrayHasKey('d', $queryParts, 'Query misses variable for default (d)');
     $this->assertArrayHasKey('s', $queryParts, 'Query misses variable for size (s)');
     $this->assertEquals($queryParts['r'], 'x', 'variable for rating has wrong value');
     $this->assertEquals($queryParts['s'], '200', 'variable for size has wrong value');
     $this->assertEquals($queryParts['d'], urldecode($options['default']), 'variable for default has wrong value');
 }