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

Reply via email to