Author: as
Date: Mon Nov 19 13:21:22 2007
New Revision: 6761

Log:
- Added support for 'rights' ATOM feed sub-element (accessed as 'copyright'
  through ezcFeed).
- Also fixed getItemsMap() in ezcFeedSchema.

Added:
    trunk/Feed/tests/atom/regression/generate/entry/rights/
    trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.in
    trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.out
    trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.in
    
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.out
    trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.in
    trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.out
    trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.in
    trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.out
    trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.in
    trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.out
    trunk/Feed/tests/atom/regression/parse/entry/rights/
    trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.in
    trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.out
    trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.in
    trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.out
    trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.in
    trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.out
    trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.in
    trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.out
    trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.in
    trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.out
Modified:
    trunk/Feed/src/processors/atom.php
    trunk/Feed/src/structs/feed_schema.php

Modified: trunk/Feed/src/processors/atom.php
==============================================================================
--- trunk/Feed/src/processors/atom.php [iso-8859-1] (original)
+++ trunk/Feed/src/processors/atom.php [iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -707,6 +707,7 @@
                 switch ( $element )
                 {
                     case 'summary':
+                    case 'rights':
                         $dataNode = $data;
                         if ( is_array( $data ) )
                         {
@@ -919,6 +920,7 @@
             if ( $itemChild->nodeType === XML_ELEMENT_NODE )
             {
                 $tagName = $itemChild->tagName;
+                $tagName = ezcFeedTools::deNormalizeName( $tagName, 
$this->schema->getItemsMap() );
 
                 switch ( $tagName )
                 {
@@ -928,6 +930,7 @@
 
                     case 'title':
                     case 'summary':
+                    case 'copyright':
                         $type = ezcFeedTools::getAttribute( $itemChild, 'type' 
);
 
                         switch ( $type )

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] Mon Nov 19 13:21:22 2007
@@ -255,7 +255,9 @@
      */
     public function getItemsMap()
     {
-        return isset( $this->schema['items']['ITEMS_MAP'] ) ? 
$this->schema['items']['ITEMS_MAP'] : array();
+        $elementsMap = $this->getElementsMap();
+        $itemName = isset( $elementsMap['item'] ) ? $elementsMap['item'] : 
'item';
+        return isset( $this->schema[$itemName]['ITEMS_MAP'] ) ? 
$this->schema[$itemName]['ITEMS_MAP'] : array();
     }
 }
 ?>

Added: trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.in
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.in 
(added)
+++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.in 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,11 @@
+<?php
+return array( 'id' => 'Feed id',
+              'title' => array( array( '#' => 'Feed title' ) ),
+              'updated' => 'Feed updated',
+              'author' => array( array( 'name' => 'Author name' ) ),
+              'item' => array( array( 'id' => 'Entry id',
+                                      'title' => array( array( '#' => 'Entry 
title' ) ),
+                                      'updated' => 'Entry updated',
+                                      'content' => 'Entry content',
+                                      'rights' => array( array() ) ) ) );
+?>

Added: trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.out
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.out 
(added)
+++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.out 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom";>
+  <id>Feed id</id>
+  <title>Feed title</title>
+  <updated>XXX</updated>
+  <author>
+    <name>Author name</name>
+  </author>
+  <entry>
+    <id>Entry id</id>
+    <title>Entry title</title>
+    <updated>XXX</updated>
+    <content>Entry content</content>
+    <rights></rights>
+  </entry>
+</feed> 

Added: 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.in
==============================================================================
--- 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.in 
(added)
+++ 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.in 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,11 @@
+<?php
+return array( 'id' => 'Feed id',
+              'title' => array( array( '#' => 'Feed title' ) ),
+              'updated' => 'Feed updated',
+              'author' => array( array( 'name' => 'Author name' ) ),
+              'item' => array( array( 'id' => 'Entry id',
+                                      'title' => array( array( '#' => 'Entry 
title' ) ),
+                                      'updated' => 'Entry updated',
+                                      'content' => 'Entry content',
+                                      'rights' => array( array( '#' => 'Entry 
rights' ) ) ) ) );
+?>

Added: 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.out
==============================================================================
--- 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.out 
(added)
+++ 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.out 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom";>
+  <id>Feed id</id>
+  <title>Feed title</title>
+  <updated>XXX</updated>
+  <author>
+    <name>Author name</name>
+  </author>
+  <entry>
+    <id>Entry id</id>
+    <title>Entry title</title>
+    <updated>XXX</updated>
+    <content>Entry content</content>
+    <rights>Entry rights</rights>
+  </entry>
+</feed> 

Added: 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.in
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.in 
(added)
+++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.in 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,12 @@
+<?php
+return array( 'id' => 'Feed id',
+              'title' => array( array( '#' => 'Feed title' ) ),
+              'updated' => 'Feed updated',
+              'author' => array( array( 'name' => 'Author name' ) ),
+              'item' => array( array( 'id' => 'Entry id',
+                                      'title' => array( array( '#' => 'Entry 
title' ) ),
+                                      'updated' => 'Entry updated',
+                                      'content' => 'Entry content',
+                                      'rights' => array( array( '#' => 'Entry 
rights',
+                                                                'type' => 
'html' ) ) ) ) );
+?>

Added: 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.out
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.out 
(added)
+++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.out 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom";>
+  <id>Feed id</id>
+  <title>Feed title</title>
+  <updated>XXX</updated>
+  <author>
+    <name>Author name</name>
+  </author>
+  <entry>
+    <id>Entry id</id>
+    <title>Entry title</title>
+    <updated>XXX</updated>
+    <content>Entry content</content>
+    <rights type="html">Entry rights</rights>
+  </entry>
+</feed> 

Added: 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.in
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.in 
(added)
+++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.in 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,12 @@
+<?php
+return array( 'id' => 'Feed id',
+              'title' => array( array( '#' => 'Feed title' ) ),
+              'updated' => 'Feed updated',
+              'author' => array( array( 'name' => 'Author name' ) ),
+              'item' => array( array( 'id' => 'Entry id',
+                                      'title' => array( array( '#' => 'Entry 
title' ) ),
+                                      'updated' => 'Entry updated',
+                                      'content' => 'Entry content',
+                                      'rights' => array( array( '#' => 'Entry 
rights',
+                                                                'type' => 
'text' ) ) ) ) );
+?>

Added: 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.out
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.out 
(added)
+++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.out 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom";>
+  <id>Feed id</id>
+  <title>Feed title</title>
+  <updated>XXX</updated>
+  <author>
+    <name>Author name</name>
+  </author>
+  <entry>
+    <id>Entry id</id>
+    <title>Entry title</title>
+    <updated>XXX</updated>
+    <content>Entry content</content>
+    <rights type="text">Entry rights</rights>
+  </entry>
+</feed> 

Added: 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.in
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.in 
(added)
+++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.in 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,12 @@
+<?php
+return array( 'id' => 'Feed id',
+              'title' => array( array( '#' => 'Feed title' ) ),
+              'updated' => 'Feed updated',
+              'author' => array( array( 'name' => 'Author name' ) ),
+              'item' => array( array( 'id' => 'Entry id',
+                                      'title' => array( array( '#' => 'Entry 
title' ) ),
+                                      'updated' => 'Entry updated',
+                                      'content' => 'Entry content',
+                                      'rights' => array( array( '#' => 'Entry 
rights',
+                                                                'type' => 
'xhtml' ) ) ) ) );
+?>

Added: 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.out
==============================================================================
--- 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.out 
(added)
+++ 
trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.out 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom";>
+  <id>Feed id</id>
+  <title>Feed title</title>
+  <updated>XXX</updated>
+  <author>
+    <name>Author name</name>
+  </author>
+  <entry>
+    <id>Entry id</id>
+    <title>Entry title</title>
+    <updated>XXX</updated>
+    <content>Entry content</content>
+    <rights type="xhtml" xmlns:xhtml="http://www.w3.org/1999/xhtml";>
+      <xhtml:div>Entry rights</xhtml:div>
+    </rights>
+  </entry>
+</feed> 

Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.in
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.in (added)
+++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.in 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom";>
+  <id>Feed id</id>
+  <title type="text">Feed title</title>
+  <updated>Feed updated</updated>
+  <entry>
+    <id>Entry id</id>
+    <title>Entry title</title>
+    <updated>2007-11-14T16:23:40+01:00</updated>
+    <rights/>
+  </entry>
+</feed>

Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.out
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.out (added)
+++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.out 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,17 @@
+<?php
+$feed = new ezcFeed( 'atom' );
+
+$feed->id = 'Feed id';
+$feed->title = 'Feed title';
+$feed->title->type = 'text';
+$feed->updated = 'Feed updated';
+
+$entry = $feed->add( 'entry' );
+$entry->id = 'Entry id';
+$entry->title = 'Entry title';
+$entry->updated = 1195053820;
+
+$entry->copyright = '';
+
+return $feed;
+?>

Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.in
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.in 
(added)
+++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.in 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom";>
+  <id>Feed id</id>
+  <title>Feed title</title>
+  <updated>Feed updated</updated>
+  <entry>
+    <id>Entry id</id>
+    <title>Entry title</title>
+    <updated>2007-11-14T16:23:40+01:00</updated>
+    <rights>Entry rights</rights>
+  </entry>
+</feed>

Added: 
trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.out
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.out 
(added)
+++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.out 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,16 @@
+<?php
+$feed = new ezcFeed( 'atom' );
+
+$feed->id = 'Feed id';
+$feed->title = 'Feed title';
+$feed->updated = 'Feed updated';
+
+$entry = $feed->add( 'entry' );
+$entry->id = 'Entry id';
+$entry->title = 'Entry title';
+$entry->updated = 1195053820;
+
+$entry->copyright = 'Entry rights';
+
+return $feed;
+?>

Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.in
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.in 
(added)
+++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.in 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom";>
+  <id>Feed id</id>
+  <title>Feed title</title>
+  <updated>Feed updated</updated>
+  <entry>
+    <id>Entry id</id>
+    <title>Entry title</title>
+    <updated>2007-11-14T16:23:40+01:00</updated>
+    <rights type="html">Entry rights</rights>
+  </entry>
+</feed>

Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.out
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.out 
(added)
+++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.out 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,17 @@
+<?php
+$feed = new ezcFeed( 'atom' );
+
+$feed->id = 'Feed id';
+$feed->title = 'Feed title';
+$feed->updated = 'Feed updated';
+
+$entry = $feed->add( 'entry' );
+$entry->id = 'Entry id';
+$entry->title = 'Entry title';
+$entry->updated = 1195053820;
+
+$entry->copyright = 'Entry rights';
+$entry->copyright->type = 'html';
+
+return $feed;
+?>

Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.in
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.in 
(added)
+++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.in 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom";>
+  <id>Feed id</id>
+  <title>Feed title</title>
+  <updated>Feed updated</updated>
+  <entry>
+    <id>Entry id</id>
+    <title>Entry title</title>
+    <updated>2007-11-14T16:23:40+01:00</updated>
+    <rights type="text">Entry rights</rights>
+  </entry>
+</feed>

Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.out
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.out 
(added)
+++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.out 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,17 @@
+<?php
+$feed = new ezcFeed( 'atom' );
+
+$feed->id = 'Feed id';
+$feed->title = 'Feed title';
+$feed->updated = 'Feed updated';
+
+$entry = $feed->add( 'entry' );
+$entry->id = 'Entry id';
+$entry->title = 'Entry title';
+$entry->updated = 1195053820;
+
+$entry->copyright = 'Entry rights';
+$entry->copyright->type = 'text';
+
+return $feed;
+?>

Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.in
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.in 
(added)
+++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.in 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom";>
+  <id>Feed id</id>
+  <title>Feed title</title>
+  <updated>Feed updated</updated>
+  <entry>
+    <id>Entry id</id>
+    <title>Entry title</title>
+    <updated>2007-11-14T16:23:40+01:00</updated>
+    <rights type="xhtml" xmlns:xhtml="http://www.w3.org/1999/xhtml";>
+      <xhtml:div>Entry rights</xhtml:div>
+    </rights>
+  </entry>
+</feed>

Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.out
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.out 
(added)
+++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.out 
[iso-8859-1] Mon Nov 19 13:21:22 2007
@@ -1,0 +1,17 @@
+<?php
+$feed = new ezcFeed( 'atom' );
+
+$feed->id = 'Feed id';
+$feed->title = 'Feed title';
+$feed->updated = 'Feed updated';
+
+$entry = $feed->add( 'entry' );
+$entry->id = 'Entry id';
+$entry->title = 'Entry title';
+$entry->updated = 1195053820;
+
+$entry->copyright = 'Entry rights';
+$entry->copyright->type = 'xhtml';
+
+return $feed;
+?>


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

Reply via email to