|
|
@@ -0,0 +1,254 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+require_once dirname(__FILE__) . '/../../../../TestHelper.php';
|
|
|
+require_once 'PHPUnit/Framework/TestCase.php';
|
|
|
+require_once 'Zend/Feed/Reader.php';
|
|
|
+
|
|
|
+class Zend_Feed_Reader_Integration_PodcastRss2Test extends PHPUnit_Framework_TestCase
|
|
|
+{
|
|
|
+
|
|
|
+ protected $_feedSamplePath = null;
|
|
|
+
|
|
|
+ public function setup()
|
|
|
+ {
|
|
|
+ $this->_feedSamplePath = dirname(__FILE__) . '/_files/podcast.xml';
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Feed level testing
|
|
|
+ */
|
|
|
+
|
|
|
+ public function testGetsNewFeedUrl()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals('http://newlocation.com/example.rss', $feed->getNewFeedUrl());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsOwner()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals('john.doe@example.com (John Doe)', $feed->getOwner());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsCategories()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals(array(
|
|
|
+ 'Technology' => array(
|
|
|
+ 'Gadgets' => null
|
|
|
+ ),
|
|
|
+ 'TV & Film' => null
|
|
|
+ ), $feed->getCategories());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsTitle()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals('All About Everything', $feed->getTitle());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsCastAuthor()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals('John Doe', $feed->getCastAuthor());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsFeedBlock()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals('no', $feed->getBlock());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsCopyright()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals('℗ & © 2005 John Doe & Family', $feed->getCopyright());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsDescription()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals('All About Everything is a show about everything.
|
|
|
+ Each week we dive into any subject known to man and talk
|
|
|
+ about it as much as we can. Look for our Podcast in the
|
|
|
+ iTunes Store', $feed->getDescription());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsLanguage()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals('en-us', $feed->getLanguage());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsLink()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals('http://www.example.com/podcasts/everything/index.html', $feed->getLink());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsEncoding()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals('UTF-8', $feed->getEncoding());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsFeedExplicit()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals('yes', $feed->getExplicit());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsEntryCount()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals(3, $feed->count());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsImage()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $this->assertEquals('http://example.com/podcasts/everything/AllAboutEverything.jpg', $feed->getImage());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Entry level testing
|
|
|
+ */
|
|
|
+
|
|
|
+ public function testGetsEntryBlock()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $entry = $feed->current();
|
|
|
+ $this->assertEquals('yes', $entry->getBlock());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsEntryId()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $entry = $feed->current();
|
|
|
+ $this->assertEquals('http://example.com/podcasts/archive/aae20050615.m4a', $entry->getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsEntryTitle()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $entry = $feed->current();
|
|
|
+ $this->assertEquals('Shake Shake Shake Your Spices', $entry->getTitle());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsEntryCastAuthor()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $entry = $feed->current();
|
|
|
+ $this->assertEquals('John Doe', $entry->getCastAuthor());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsEntryExplicit()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $entry = $feed->current();
|
|
|
+ $this->assertEquals('no', $entry->getExplicit());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsSubtitle()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $entry = $feed->current();
|
|
|
+ $this->assertEquals('A short primer on table spices
|
|
|
+ ', $entry->getSubtitle());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsSummary()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $entry = $feed->current();
|
|
|
+ $this->assertEquals('This week we talk about salt and pepper
|
|
|
+ shakers, comparing and contrasting pour rates,
|
|
|
+ construction materials, and overall aesthetics. Come and
|
|
|
+ join the party!', $entry->getSummary());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsDuration()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $entry = $feed->current();
|
|
|
+ $this->assertEquals('7:04', $entry->getDuration());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsKeywords()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $entry = $feed->current();
|
|
|
+ $this->assertEquals('salt, pepper, shaker, exciting
|
|
|
+ ', $entry->getKeywords());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsEntryEncoding()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $entry = $feed->current();
|
|
|
+ $this->assertEquals('UTF-8', $entry->getEncoding());
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testGetsEnclosure()
|
|
|
+ {
|
|
|
+ $feed = Zend_Feed_Reader::importString(
|
|
|
+ file_get_contents($this->_feedSamplePath)
|
|
|
+ );
|
|
|
+ $entry = $feed->current();
|
|
|
+
|
|
|
+ $expected = new stdClass();
|
|
|
+ $expected->url = 'http://example.com/podcasts/everything/AllAboutEverythingEpisode3.m4a';
|
|
|
+ $expected->length = '8727310';
|
|
|
+ $expected->type = 'audio/x-m4a';
|
|
|
+
|
|
|
+ $this->assertEquals($expected, $entry->getEnclosure());
|
|
|
+ }
|
|
|
+}
|