Author: as Date: Tue Oct 30 16:54:46 2007 New Revision: 6637 Log: - Fixed 'item/pubDate' RSS2 feed element.
Added: trunk/Feed/tests/rss2/regression/generate/item/pubDate/ trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate.in trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate.out trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate_empty.in trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate_empty.out trunk/Feed/tests/rss2/regression/parse/item/pubDate/ trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate.in trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate.out trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate_empty.in trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate_empty.out Modified: trunk/Feed/src/nodes/element.php trunk/Feed/src/processors/rss2.php trunk/Feed/src/structs/feed_schema.php trunk/Feed/tests/rss2/rss2_regression_parse_test.php Modified: trunk/Feed/src/nodes/element.php ============================================================================== --- trunk/Feed/src/nodes/element.php [iso-8859-1] (original) +++ trunk/Feed/src/nodes/element.php [iso-8859-1] Tue Oct 30 16:54:46 2007 @@ -50,6 +50,9 @@ */ public function __set( $name, $value ) { + $map = isset( $this->schema['ITEMS_MAP'] ) ? $this->schema['ITEMS_MAP'] : array(); + $name = ezcFeedTools::normalizeName( $name, $map ); + if ( isset( $this->schema['ATTRIBUTES'][$name] ) ) { $this->data[$name] = $value; @@ -70,6 +73,9 @@ */ public function __get( $name ) { + $map = isset( $this->schema['ITEMS_MAP'] ) ? $this->schema['ITEMS_MAP'] : array(); + $name = ezcFeedTools::normalizeName( $name, $map ); + return isset( $this->data[$name] ) ? $this->data[$name] : null; } Modified: trunk/Feed/src/processors/rss2.php ============================================================================== --- trunk/Feed/src/processors/rss2.php [iso-8859-1] (original) +++ trunk/Feed/src/processors/rss2.php [iso-8859-1] Tue Oct 30 16:54:46 2007 @@ -113,6 +113,7 @@ 'enclosure', 'guid', 'pubDate', 'source' ), ), + 'ITEMS_MAP' => array( 'published' => 'pubDate' ), 'MULTI' => 'items' ), 'REQUIRED' => array( 'title', 'link', 'description' ), @@ -130,8 +131,6 @@ 'ELEMENTS_MAP' => array( 'author' => 'managingEditor', 'published' => 'pubDate', 'updated' => 'lastBuildDate' ), - - 'ITEMS_MAP' => array( 'published' => 'pubDate' ), ); @@ -442,8 +441,8 @@ $this->generateMetaDataWithAttributes( $itemTag, $normalizedAttribute, $metaData, $attributes ); break; - case 'published': - $this->generateMetaData( $itemTag, $normalizedAttribute, date( 'D, d M Y H:i:s O', $metaData ) ); + case 'pubDate': + $this->generateMetaData( $itemTag, $normalizedAttribute, date( 'D, d M Y H:i:s O', (int) $metaData->get() ) ); break; case 'enclosure': @@ -625,7 +624,6 @@ if ( $itemChild->nodeType === XML_ELEMENT_NODE ) { $tagName = $itemChild->tagName; - $tagName = ezcFeedTools::deNormalizeName( $tagName, $this->schema->getItemsMap() ); switch ( $tagName ) { @@ -638,7 +636,7 @@ $element->$tagName = $itemChild->textContent; break; - case 'published': + case 'pubDate': $element->$tagName = ezcFeedTools::prepareDate( $itemChild->textContent ); break; Modified: trunk/Feed/src/structs/feed_schema.php ============================================================================== --- trunk/Feed/src/structs/feed_schema.php [iso-8859-1] (original) +++ trunk/Feed/src/structs/feed_schema.php [iso-8859-1] Tue Oct 30 16:54:46 2007 @@ -214,7 +214,7 @@ */ public function getItemsMap() { - return isset( $this->schema['ITEMS_MAP'] ) ? $this->schema['ITEMS_MAP'] : array(); + return isset( $this->schema['items']['ITEMS_MAP'] ) ? $this->schema['items']['ITEMS_MAP'] : array(); } } ?> Added: trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate.in ============================================================================== --- trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate.in (added) +++ trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate.in [iso-8859-1] Tue Oct 30 16:54:46 2007 @@ -1,0 +1,10 @@ +<?php +return array( 'title' => 'Feed title', + 'link' => array( 'Feed link' ), + 'description' => 'Feed description', + 'item' => array( array( 'title' => 'Item title', + 'link' => 'Item link', + 'description' => 'Item description', + 'published' => 'YYY' ), ), + ); +?> Added: trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate.out ============================================================================== --- trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate.out (added) +++ trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate.out [iso-8859-1] Tue Oct 30 16:54:46 2007 @@ -1,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<rss version="2.0"> + <channel> + <title>Feed title</title> + <link>Feed link</link> + <description>Feed description</description> + <pubDate>XXX</pubDate> + <generator>eZ Components</generator> + <docs>http://www.rssboard.org/rss-specification</docs> + <item> + <title>Item title</title> + <link>Item link</link> + <description>Item description</description> + <pubDate>YYY</pubDate> + </item> + </channel> +</rss> Added: trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate_empty.in ============================================================================== --- trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate_empty.in (added) +++ trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate_empty.in [iso-8859-1] Tue Oct 30 16:54:46 2007 @@ -1,0 +1,10 @@ +<?php +return array( 'title' => 'Feed title', + 'link' => array( 'Feed link' ), + 'description' => 'Feed description', + 'item' => array( array( 'title' => 'Item title', + 'link' => 'Item link', + 'description' => 'Item description', + 'published' => null ), ), + ); +?> Added: trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate_empty.out ============================================================================== --- trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate_empty.out (added) +++ trunk/Feed/tests/rss2/regression/generate/item/pubDate/pubDate_empty.out [iso-8859-1] Tue Oct 30 16:54:46 2007 @@ -1,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<rss version="2.0"> + <channel> + <title>Feed title</title> + <link>Feed link</link> + <description>Feed description</description> + <pubDate>XXX</pubDate> + <generator>eZ Components</generator> + <docs>http://www.rssboard.org/rss-specification</docs> + <item> + <title>Item title</title> + <link>Item link</link> + <description>Item description</description> + <pubDate></pubDate> + </item> + </channel> +</rss> Added: trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate.in ============================================================================== --- trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate.in (added) +++ trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate.in [iso-8859-1] Tue Oct 30 16:54:46 2007 @@ -1,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<rss version="2.0"> + <channel> + <title>Feed title</title> + <link>Feed link</link> + <description>Feed description</description> + <item> + <title>Item title</title> + <link>Item link</link> + <description>Item description</description> + <pubDate>YYY</pubDate> + </item> + </channel> +</rss> Added: trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate.out ============================================================================== --- trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate.out (added) +++ trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate.out [iso-8859-1] Tue Oct 30 16:54:46 2007 @@ -1,0 +1,17 @@ +<?php +$feed = new ezcFeed( 'rss2' ); +$feed->title = 'Feed title'; + +$link = $feed->add( 'link' ); +$link->set( 'Feed link' ); + +$feed->description = 'Feed description'; + +$item = $feed->add( 'item' ); +$item->title = 'Item title'; +$item->link = 'Item link'; +$item->description = 'Item description'; +$item->published = 'YYY'; + +return $feed; +?> Added: trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate_empty.in ============================================================================== --- trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate_empty.in (added) +++ trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate_empty.in [iso-8859-1] Tue Oct 30 16:54:46 2007 @@ -1,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<rss version="2.0"> + <channel> + <title>Feed title</title> + <link>Feed link</link> + <description>Feed description</description> + <item> + <title>Item title</title> + <link>Item link</link> + <description>Item description</description> + <pubDate></pubDate> + </item> + </channel> +</rss> Added: trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate_empty.out ============================================================================== --- trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate_empty.out (added) +++ trunk/Feed/tests/rss2/regression/parse/item/pubDate/pubDate_empty.out [iso-8859-1] Tue Oct 30 16:54:46 2007 @@ -1,0 +1,17 @@ +<?php +$feed = new ezcFeed( 'rss2' ); +$feed->title = 'Feed title'; + +$link = $feed->add( 'link' ); +$link->set( 'Feed link' ); + +$feed->description = 'Feed description'; + +$item = $feed->add( 'item' ); +$item->title = 'Item title'; +$item->link = 'Item link'; +$item->description = 'Item description'; +$item->published = null; + +return $feed; +?> Modified: trunk/Feed/tests/rss2/rss2_regression_parse_test.php ============================================================================== --- trunk/Feed/tests/rss2/rss2_regression_parse_test.php [iso-8859-1] (original) +++ trunk/Feed/tests/rss2/rss2_regression_parse_test.php [iso-8859-1] Tue Oct 30 16:54:46 2007 @@ -49,6 +49,15 @@ $parsed->updated = 'YYY'; $expected->updated = 'YYY'; } + + for ( $i = 0; $i < count( $expected->items ); $i++ ) + { + $item = $expected->items[$i]; + if ( $expected->items[$i]->published !== $parsed->items[$i]->published ) + { + $item->published = time(); + } + } } public function testRunRegression( $file ) -- svn-components mailing list svn-components@lists.ez.no http://lists.ez.no/mailman/listinfo/svn-components