LautDeRdfTest.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <?php
  2. require_once 'PHPUnit/Framework/TestCase.php';
  3. require_once 'Zend/Feed/Reader.php';
  4. class Zend_Feed_Reader_Integration_LautDeRdfTest extends PHPUnit_Framework_TestCase
  5. {
  6. protected $_feedSamplePath = null;
  7. public function setup()
  8. {
  9. $this->_feedSamplePath = dirname(__FILE__) . '/_files/laut.de-rdf.xml';
  10. }
  11. /**
  12. * Feed level testing
  13. */
  14. public function testGetsTitle()
  15. {
  16. $feed = Zend_Feed_Reader::importString(
  17. file_get_contents($this->_feedSamplePath)
  18. );
  19. $this->assertEquals('laut.de - news', $feed->getTitle());
  20. }
  21. public function testGetsAuthors()
  22. {
  23. $feed = Zend_Feed_Reader::importString(
  24. file_get_contents($this->_feedSamplePath)
  25. );
  26. $this->assertEquals(array('laut.de'), $feed->getAuthors());
  27. }
  28. public function testGetsSingleAuthor()
  29. {
  30. $feed = Zend_Feed_Reader::importString(
  31. file_get_contents($this->_feedSamplePath)
  32. );
  33. $this->assertEquals('laut.de', $feed->getAuthor());
  34. }
  35. public function testGetsCopyright()
  36. {
  37. $feed = Zend_Feed_Reader::importString(
  38. file_get_contents($this->_feedSamplePath)
  39. );
  40. $this->assertEquals('Copyright © 2004 laut.de', $feed->getCopyright());
  41. }
  42. public function testGetsDescription()
  43. {
  44. $feed = Zend_Feed_Reader::importString(
  45. file_get_contents($this->_feedSamplePath)
  46. );
  47. $this->assertEquals('laut.de: aktuelle News', $feed->getDescription());
  48. }
  49. public function testGetsLanguage()
  50. {
  51. $feed = Zend_Feed_Reader::importString(
  52. file_get_contents($this->_feedSamplePath)
  53. );
  54. $this->assertEquals(null, $feed->getLanguage());
  55. }
  56. public function testGetsLink()
  57. {
  58. $feed = Zend_Feed_Reader::importString(
  59. file_get_contents($this->_feedSamplePath)
  60. );
  61. $this->assertEquals('http://www.laut.de', $feed->getLink());
  62. }
  63. public function testGetsEncoding()
  64. {
  65. $feed = Zend_Feed_Reader::importString(
  66. file_get_contents($this->_feedSamplePath)
  67. );
  68. $this->assertEquals('ISO-8859-1', $feed->getEncoding());
  69. }
  70. /**
  71. * Entry level testing
  72. */
  73. public function testGetsEntryId()
  74. {
  75. $feed = Zend_Feed_Reader::importString(
  76. file_get_contents($this->_feedSamplePath)
  77. );
  78. $entry = $feed->current();
  79. $this->assertEquals('http://www.laut.de/vorlaut/news/2009/07/04/22426/index.htm', $entry->getId());
  80. }
  81. public function testGetsEntryTitle()
  82. {
  83. $feed = Zend_Feed_Reader::importString(
  84. file_get_contents($this->_feedSamplePath)
  85. );
  86. $entry = $feed->current();
  87. $this->assertEquals('Angelika Express: MySpace-Aus wegen Sido-Werbung', $entry->getTitle());
  88. }
  89. public function testGetsEntryAuthors()
  90. {
  91. $feed = Zend_Feed_Reader::importString(
  92. file_get_contents($this->_feedSamplePath)
  93. );
  94. $entry = $feed->current();
  95. $this->assertEquals(array('laut.de'), $entry->getAuthors());
  96. }
  97. public function testGetsEntrySingleAuthor()
  98. {
  99. $feed = Zend_Feed_Reader::importString(
  100. file_get_contents($this->_feedSamplePath)
  101. );
  102. $entry = $feed->current();
  103. $this->assertEquals('laut.de', $entry->getAuthor());
  104. }
  105. // Technically, the next two tests should not pass. However the source feed has an encoding
  106. // problem - it's stated as ISO-8859-1 but sent as UTF-8. The result is that a) it's
  107. // broken itself, or b) We should consider a fix in the future for similar feeds such
  108. // as using a more limited XML based decoding method (not html_entity_decode())
  109. public function testGetsEntryDescription()
  110. {
  111. $feed = Zend_Feed_Reader::importString(
  112. file_get_contents($this->_feedSamplePath)
  113. );
  114. $entry = $feed->current();
  115. $this->assertEquals('Schon länger haderten die Kölner mit der Plattform des "fiesen Rupert Murdoch". Das Fass zum Überlaufen brachte aber ein Werbebanner von Deutschrapper Sido.', $entry->getDescription());
  116. }
  117. public function testGetsEntryContent()
  118. {
  119. $feed = Zend_Feed_Reader::importString(
  120. file_get_contents($this->_feedSamplePath)
  121. );
  122. $entry = $feed->current();
  123. $this->assertEquals('Schon länger haderten die Kölner mit der Plattform des "fiesen Rupert Murdoch". Das Fass zum Überlaufen brachte aber ein Werbebanner von Deutschrapper Sido.', $entry->getContent());
  124. }
  125. public function testGetsEntryLinks()
  126. {
  127. $feed = Zend_Feed_Reader::importString(
  128. file_get_contents($this->_feedSamplePath)
  129. );
  130. $entry = $feed->current();
  131. $this->assertEquals(array('http://www.laut.de/vorlaut/news/2009/07/04/22426/index.htm'), $entry->getLinks());
  132. }
  133. public function testGetsEntryLink()
  134. {
  135. $feed = Zend_Feed_Reader::importString(
  136. file_get_contents($this->_feedSamplePath)
  137. );
  138. $entry = $feed->current();
  139. $this->assertEquals('http://www.laut.de/vorlaut/news/2009/07/04/22426/index.htm', $entry->getLink());
  140. }
  141. public function testGetsEntryPermaLink()
  142. {
  143. $feed = Zend_Feed_Reader::importString(
  144. file_get_contents($this->_feedSamplePath)
  145. );
  146. $entry = $feed->current();
  147. $this->assertEquals('http://www.laut.de/vorlaut/news/2009/07/04/22426/index.htm',
  148. $entry->getPermaLink());
  149. }
  150. public function testGetsEntryEncoding()
  151. {
  152. $feed = Zend_Feed_Reader::importString(
  153. file_get_contents($this->_feedSamplePath)
  154. );
  155. $entry = $feed->current();
  156. $this->assertEquals('ISO-8859-1', $entry->getEncoding());
  157. }
  158. }