Author: as
Date: Wed Oct 31 11:14:06 2007
New Revision: 6641

Log:
- Added support for 'item/source' RSS2 feed element.

Added:
    trunk/Feed/tests/rss2/regression/generate/item/source/
    trunk/Feed/tests/rss2/regression/generate/item/source/source.in
    trunk/Feed/tests/rss2/regression/generate/item/source/source.out
    trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.in
    trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.out
    trunk/Feed/tests/rss2/regression/generate/item/source/source_url.in
    trunk/Feed/tests/rss2/regression/generate/item/source/source_url.out
    trunk/Feed/tests/rss2/regression/parse/item/source/
    trunk/Feed/tests/rss2/regression/parse/item/source/source.in
    trunk/Feed/tests/rss2/regression/parse/item/source/source.out
    trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.in
    trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.out
    trunk/Feed/tests/rss2/regression/parse/item/source/source_url.in
    trunk/Feed/tests/rss2/regression/parse/item/source/source_url.out
Modified:
    trunk/Feed/src/processors/rss2.php

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] Wed Oct 31 11:14:06 2007
@@ -108,7 +108,8 @@
                                                                               
'ATTRIBUTES' => array( 'isPermaLink' => 'string' ) ),
 
                                                      'pubDate'      => array( 
'#' => 'string' ),
-                                                     'source'       => array( 
'#' => 'string' ),
+                                                     'source'       => array( 
'#' => 'string',
+                                                                              
'ATTRIBUTES' => array( 'url' => 'string' ) ),
 
                                                      'AT_LEAST_ONE' => array( 
'title', 'description' ),
                                                      'OPTIONAL'     => array( 
'title', 'link', 'description',
@@ -493,6 +494,20 @@
                                 }
                             }
 
+                            break;
+
+                        case 'source':
+                            if ( is_array( $metaData ) )
+                            {
+                                $metaData = $metaData[0];
+                            }
+
+                            if ( !isset( $metaData->url ) )
+                            {
+                                throw new 
ezcFeedRequiredMetaDataMissingException( 'item/source/url' );
+                            }
+                            $attributes = array( 'url' => $metaData->url );
+                            $this->generateMetaDataWithAttributes( $itemTag, 
$normalizedAttribute, $metaData, $attributes );
                             break;
 
                         default:

Added: trunk/Feed/tests/rss2/regression/generate/item/source/source.in
==============================================================================
--- trunk/Feed/tests/rss2/regression/generate/item/source/source.in (added)
+++ trunk/Feed/tests/rss2/regression/generate/item/source/source.in 
[iso-8859-1] Wed Oct 31 11:14:06 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',
+                                      'source' => 'Item source' ), ),
+            );
+?>

Added: trunk/Feed/tests/rss2/regression/generate/item/source/source.out
==============================================================================
--- trunk/Feed/tests/rss2/regression/generate/item/source/source.out (added)
+++ trunk/Feed/tests/rss2/regression/generate/item/source/source.out 
[iso-8859-1] Wed Oct 31 11:14:06 2007
@@ -1,0 +1,1 @@
+There was no data submitted for required channel attribute 'item/source/url'.

Added: trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.in
==============================================================================
--- trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.in 
(added)
+++ trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.in 
[iso-8859-1] Wed Oct 31 11:14:06 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',
+                                      'source' => null ), ),
+            );
+?>

Added: trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.out
==============================================================================
--- trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.out 
(added)
+++ trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.out 
[iso-8859-1] Wed Oct 31 11:14:06 2007
@@ -1,0 +1,1 @@
+There was no data submitted for required channel attribute 'item/source/url'.

Added: trunk/Feed/tests/rss2/regression/generate/item/source/source_url.in
==============================================================================
--- trunk/Feed/tests/rss2/regression/generate/item/source/source_url.in (added)
+++ trunk/Feed/tests/rss2/regression/generate/item/source/source_url.in 
[iso-8859-1] Wed Oct 31 11:14:06 2007
@@ -1,0 +1,11 @@
+<?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',
+                                      'source' => array( '#' => 'Item source',
+                                                         'url' => 'Source url' 
) ), ),
+            );
+?>

Added: trunk/Feed/tests/rss2/regression/generate/item/source/source_url.out
==============================================================================
--- trunk/Feed/tests/rss2/regression/generate/item/source/source_url.out (added)
+++ trunk/Feed/tests/rss2/regression/generate/item/source/source_url.out 
[iso-8859-1] Wed Oct 31 11:14:06 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>
+      <source url="Source url">Item source</source>
+    </item>
+  </channel>
+</rss>

Added: trunk/Feed/tests/rss2/regression/parse/item/source/source.in
==============================================================================
--- trunk/Feed/tests/rss2/regression/parse/item/source/source.in (added)
+++ trunk/Feed/tests/rss2/regression/parse/item/source/source.in [iso-8859-1] 
Wed Oct 31 11:14:06 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>
+      <source>Item source</source>
+    </item>
+  </channel>
+</rss> 

Added: trunk/Feed/tests/rss2/regression/parse/item/source/source.out
==============================================================================
--- trunk/Feed/tests/rss2/regression/parse/item/source/source.out (added)
+++ trunk/Feed/tests/rss2/regression/parse/item/source/source.out [iso-8859-1] 
Wed Oct 31 11:14:06 2007
@@ -1,0 +1,18 @@
+<?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->source = 'Item source';
+
+return $feed;
+?>

Added: trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.in
==============================================================================
--- trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.in (added)
+++ trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.in 
[iso-8859-1] Wed Oct 31 11:14:06 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>
+      <source/>
+    </item>
+  </channel>
+</rss> 

Added: trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.out
==============================================================================
--- trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.out (added)
+++ trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.out 
[iso-8859-1] Wed Oct 31 11:14:06 2007
@@ -1,0 +1,18 @@
+<?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->source = null;
+
+return $feed;
+?>

Added: trunk/Feed/tests/rss2/regression/parse/item/source/source_url.in
==============================================================================
--- trunk/Feed/tests/rss2/regression/parse/item/source/source_url.in (added)
+++ trunk/Feed/tests/rss2/regression/parse/item/source/source_url.in 
[iso-8859-1] Wed Oct 31 11:14:06 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>
+      <source url="Source url">Item source</source>
+    </item>
+  </channel>
+</rss> 

Added: trunk/Feed/tests/rss2/regression/parse/item/source/source_url.out
==============================================================================
--- trunk/Feed/tests/rss2/regression/parse/item/source/source_url.out (added)
+++ trunk/Feed/tests/rss2/regression/parse/item/source/source_url.out 
[iso-8859-1] Wed Oct 31 11:14:06 2007
@@ -1,0 +1,19 @@
+<?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->source = 'Item source';
+$item->source->url = 'Source url';
+
+return $feed;
+?>


-- 
svn-components mailing list
svn-components@lists.ez.no
http://lists.ez.no/mailman/listinfo/svn-components

Reply via email to