public function testConvertFeedToAndFromString() { $this->feed->transferFromXML($this->feedText); $feedXml = $this->feed->saveXML(); $newFeed = new App\Feed(); $newFeed->transferFromXML($feedXml); $this->assertEquals(1, count($newFeed->entry)); $this->assertEquals('dive into mark', $newFeed->title->text); $this->assertEquals('text', $newFeed->title->type); $this->assertEquals('2005-07-31T12:29:29Z', $newFeed->updated->text); $this->assertEquals('tag:example.org,2003:3', $newFeed->id->text); $this->assertEquals(2, count($newFeed->link)); $this->assertEquals('http://example.org/', $newFeed->getAlternateLink()->href); $this->assertEquals('en', $newFeed->getAlternateLink()->hrefLang); $this->assertEquals('text/html', $newFeed->getAlternateLink()->type); $this->assertEquals('http://example.org/feed.atom', $newFeed->getSelfLink()->href); $this->assertEquals('application/atom+xml', $newFeed->getSelfLink()->type); $this->assertEquals('Copyright (c) 2003, Mark Pilgrim', $newFeed->rights->text); $entry = $newFeed->entry[0]; $this->assertEquals('Atom draft-07 snapshot', $entry->title->text); $this->assertEquals('tag:example.org,2003:3.2397', $entry->id->text); $this->assertEquals('2005-07-31T12:29:29Z', $entry->updated->text); $this->assertEquals('2003-12-13T08:29:29-04:00', $entry->published->text); $this->assertEquals('Mark Pilgrim', $entry->author[0]->name->text); $this->assertEquals('http://example.org/', $entry->author[0]->uri->text); $this->assertEquals(2, count($entry->contributor)); $this->assertEquals('Sam Ruby', $entry->contributor[0]->name->text); $this->assertEquals('Joe Gregorio', $entry->contributor[1]->name->text); $this->assertEquals('xhtml', $entry->content->type); }
/** * Retrieve previous set of results based on a given feed. * * @param \Zend\GData\App\Feed $feed The feed from which to * retreive the previous set of results. * @param string $className (optional) The class of feed to be returned. * If null, the previous feed (if found) will be the same class as * the feed that was given as the first argument. * @return \Zend\GData\App\Feed|null Returns a * Zend_Gdata_App_Feed or null if no previous set of results * exists. */ public function getPreviousFeed($feed, $className = null) { $previousLink = $feed->getPreviousLink(); if (!$previousLink) { return null; } $previousLinkHref = $previousLink->getHref(); if ($className === null) { $className = get_class($feed); } return $this->getFeed($previousLinkHref, $className); }
/** * Given a DOMNode representing an attribute, tries to map the data into * instance members. If no mapping is defined, the name and value are * stored in an array. * * @param DOMNode $attribute The DOMNode attribute needed to be handled */ protected function takeAttributeFromDOM($attribute) { switch ($attribute->localName) { case 'etag': // ETags are special, since they can be conveyed by either the // HTTP ETag header or as an XML attribute. $etag = $attribute->nodeValue; if (!$this->_etag instanceof Etag) { $this->_etag = $etag; } elseif ($this->_etag->getFieldValue() != $etag) { throw new App\IOException("ETag mismatch"); } break; default: parent::takeAttributeFromDOM($attribute); break; } }
/** * @group ZF-10242 */ public function testCount() { $feed = new App\Feed(); $feed->addEntry('foo')->addEntry('bar'); $this->assertEquals(2, $feed->count()); $this->assertEquals(2, count($feed)); }