WeblogTest.php 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Service_Technorati
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. * @version $Id$
  21. */
  22. /**
  23. * Test helper
  24. */
  25. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR .'TestCase.php';
  26. /**
  27. * @see Zend_Service_Technorati_Weblog
  28. */
  29. require_once 'Zend/Service/Technorati/Weblog.php';
  30. /**
  31. * @category Zend
  32. * @package Zend_Service_Technorati
  33. * @subpackage UnitTests
  34. * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
  35. * @license http://framework.zend.com/license/new-bsd New BSD License
  36. */
  37. class Zend_Service_Technorati_WeblogTest extends Zend_Service_Technorati_TestCase
  38. {
  39. public function setUp()
  40. {
  41. $this->domElement = self::getTestFileElementAsDom('TestWeblog.xml', '//weblog');
  42. }
  43. public function testConstruct()
  44. {
  45. $this->_testConstruct('Zend_Service_Technorati_Weblog', array($this->domElement));
  46. }
  47. public function testConstructThrowsExceptionWithInvalidDom()
  48. {
  49. $this->_testConstructThrowsExceptionWithInvalidDom('Zend_Service_Technorati_Weblog', 'DOMElement');
  50. }
  51. public function testWeblog()
  52. {
  53. $weblog = new Zend_Service_Technorati_Weblog($this->domElement);
  54. // check name
  55. $this->assertEquals('Roby Web World Italia', $weblog->getName());
  56. // check URL
  57. $this->assertEquals(Zend_Uri::factory('http://robyww.blogspot.com'), $weblog->getUrl());
  58. // check Atom Url
  59. $this->assertEquals(Zend_Uri::factory('http://robyww.blogspot.com/feeds/posts/atom'), $weblog->getAtomUrl());
  60. // check RSS Url
  61. $this->assertEquals(Zend_Uri::factory('http://robyww.blogspot.com/feeds/posts/rss'), $weblog->getRssUrl());
  62. // check inbound blogs
  63. $this->assertEquals(71, $weblog->getInboundBlogs());
  64. // check inbound links
  65. $this->assertEquals(103, $weblog->getInboundLinks());
  66. // check last update
  67. $this->assertEquals(new Zend_Date('2007-11-11 08:47:26 GMT'), $weblog->getLastUpdate());
  68. // check rank
  69. $this->assertEquals(93473, $weblog->getRank());
  70. // check authors
  71. $var = $weblog->getAuthors();
  72. $this->assertType('array', $var);
  73. $this->assertEquals(1, sizeof($var));
  74. // check photo
  75. $this->assertEquals(false, $weblog->hasPhoto());
  76. // check lat and lon
  77. $this->assertNull($weblog->getLat());
  78. $this->assertNull($weblog->getLon());
  79. }
  80. public function testWeblogWithTwoAuthors()
  81. {
  82. $domElement = self::getTestFileElementAsDom('TestWeblogTwoAuthors.xml', '//weblog');
  83. $weblog = new Zend_Service_Technorati_Weblog($domElement);
  84. $authors = $weblog->getAuthors();
  85. // check whether $authors is an array with valid length
  86. $this->assertType('array', $authors);
  87. $this->assertEquals(2, sizeof($authors));
  88. // check first author
  89. $author = $authors[0];
  90. $this->assertType('Zend_Service_Technorati_Author', $author);
  91. $this->assertEquals('rfilippini', $author->getUsername());
  92. // check second author, be sure it's not the first one
  93. $author = $authors[1];
  94. $this->assertType('Zend_Service_Technorati_Author', $author);
  95. $this->assertEquals('Rinzi', $author->getUsername());
  96. }
  97. public function testSetGet()
  98. {
  99. $weblog = new Zend_Service_Technorati_Weblog($this->domElement);
  100. // check name
  101. $set = 'foo';
  102. $get = $weblog->setName($set)->getName();
  103. $this->assertType('string', $get);
  104. $this->assertEquals($set, $get);
  105. // check URL
  106. $set = Zend_Uri::factory('http://www.simonecarletti.com/');
  107. $get = $weblog->setUrl($set)->getUrl();
  108. $this->assertType('Zend_Uri_Http', $get);
  109. $this->assertEquals($set, $get);
  110. $set = 'http://www.simonecarletti.com/';
  111. $get = $weblog->setUrl($set)->getUrl();
  112. $this->assertType('Zend_Uri_Http', $get);
  113. $this->assertEquals(Zend_Uri::factory($set), $get);
  114. $set = 'http:::/foo';
  115. try {
  116. $weblog->setUrl($set);
  117. $this->fail('Expected Zend_Service_Technorati_Exception not thrown');
  118. } catch(Zend_Service_Technorati_Exception $e) {
  119. $this->assertContains("Invalid URI", $e->getMessage());
  120. }
  121. // check Atom URL
  122. $set = Zend_Uri::factory('http://www.simonecarletti.com/');
  123. $get = $weblog->setAtomUrl($set)->getAtomUrl();
  124. $this->assertType('Zend_Uri_Http', $get);
  125. $this->assertEquals($set, $get);
  126. $set = 'http://www.simonecarletti.com/';
  127. $get = $weblog->setAtomUrl($set)->getAtomUrl();
  128. $this->assertType('Zend_Uri_Http', $get);
  129. $this->assertEquals(Zend_Uri::factory($set), $get);
  130. $set = 'http:::/foo';
  131. try {
  132. $weblog->setAtomUrl($set);
  133. $this->fail('Expected Zend_Service_Technorati_Exception not thrown');
  134. } catch(Zend_Service_Technorati_Exception $e) {
  135. $this->assertContains("Invalid URI", $e->getMessage());
  136. }
  137. // check RSS Url
  138. $set = Zend_Uri::factory('http://www.simonecarletti.com/');
  139. $get = $weblog->setRssUrl($set)->getRssUrl();
  140. $this->assertType('Zend_Uri_Http', $get);
  141. $this->assertEquals($set, $get);
  142. $set = 'http://www.simonecarletti.com/';
  143. $get = $weblog->setRssUrl($set)->getRssUrl();
  144. $this->assertType('Zend_Uri_Http', $get);
  145. $this->assertEquals(Zend_Uri::factory($set), $get);
  146. $set = 'http:::/foo';
  147. try {
  148. $weblog->setRssUrl($set);
  149. $this->fail('Expected Zend_Service_Technorati_Exception not thrown');
  150. } catch(Zend_Service_Technorati_Exception $e) {
  151. $this->assertContains("Invalid URI", $e->getMessage());
  152. }
  153. // check inbound blogs
  154. $set = rand();
  155. $get = $weblog->setInboundBlogs($set)->getInboundBlogs();
  156. $this->assertType('integer', $get);
  157. $this->assertEquals($set, $get);
  158. $set = (string) rand();
  159. $get = $weblog->setInboundBlogs($set)->getInboundBlogs();
  160. $this->assertType('integer', $get);
  161. $this->assertEquals((int) $set, $get);
  162. // check inbound links
  163. $set = rand();
  164. $get = $weblog->setInboundLinks($set)->getInboundLinks();
  165. $this->assertType('integer', $get);
  166. $this->assertEquals((int) $set, $get);
  167. $set = (string) rand();
  168. $get = $weblog->setInboundLinks($set)->getInboundLinks();
  169. $this->assertType('integer', $get);
  170. $this->assertEquals((int) $set, $get);
  171. // last update
  172. $set = '2007-11-11 08:47:26 GMT';
  173. $get = $weblog->setLastUpdate($set)->getLastUpdate();
  174. $this->assertType('Zend_Date', $get);
  175. $this->assertEquals(new Zend_Date($set), $get);
  176. /* not supported
  177. $set = time();
  178. $get = $weblog->setLastUpdate($set)->getLastUpdate();
  179. $this->assertType('integer', $get);
  180. $this->assertEquals($set, $get); */
  181. $set = '200ty';
  182. try {
  183. $weblog->setLastUpdate($set);
  184. $this->fail('Expected Zend_Service_Technorati_Exception not thrown');
  185. } catch(Zend_Service_Technorati_Exception $e) {
  186. $this->assertContains("valid Date/Time", $e->getMessage());
  187. }
  188. // check rank
  189. $set = rand();
  190. $get = $weblog->setRank($set)->getRank();
  191. $this->assertType('integer', $get);
  192. $this->assertEquals((int) $set, $get);
  193. $set = (string) rand();
  194. $get = $weblog->setRank($set)->getRank();
  195. $this->assertType('integer', $get);
  196. $this->assertEquals((int) $set, $get);
  197. // check hasPhoto
  198. $set = false;
  199. $get = $weblog->setHasPhoto($set)->hasPhoto();
  200. $this->assertType('boolean', $get);
  201. $this->assertEquals($set, $get);
  202. $set = 0;
  203. $get = $weblog->setHasPhoto($set)->hasPhoto();
  204. $this->assertType('boolean', $get);
  205. $this->assertEquals((bool) $set, $get);
  206. // check lat
  207. $set = 1.3;
  208. $get = $weblog->setLat($set)->getLat();
  209. $this->assertType('float', $get);
  210. $this->assertEquals($set, $get);
  211. $set = '1.3';
  212. $get = $weblog->setLat($set)->getLat();
  213. $this->assertType('float', $get);
  214. $this->assertEquals((float) $set, $get);
  215. // check lon
  216. $set = 1.3;
  217. $get = $weblog->setLon($set)->getLon();
  218. $this->assertType('float', $get);
  219. $this->assertEquals($set, $get);
  220. $set = '1.3';
  221. $get = $weblog->setLon($set)->getLon();
  222. $this->assertType('float', $get);
  223. $this->assertEquals((float) $set, $get);
  224. }
  225. }