Author: as
Date: Fri Feb 22 15:09:22 2008
New Revision: 7434

Log:
- Added some more tests for undefined and unsupported modules.
- Fixed the broken isset in ezcFeed.

Modified:
    trunk/Feed/src/feed.php
    trunk/Feed/tests/feed_test.php

Modified: trunk/Feed/src/feed.php
==============================================================================
--- trunk/Feed/src/feed.php [iso-8859-1] (original)
+++ trunk/Feed/src/feed.php [iso-8859-1] Fri Feb 22 15:09:22 2008
@@ -465,6 +465,8 @@
                     }
                 }
         }
+
+        throw new ezcFeedUnsupportedModuleException( $property );
     }
 
     /**
@@ -507,7 +509,7 @@
             case 'updated':
             case 'webMaster':
                 $value = $this->feedProcessor->get( $name );
-                return ( $value === null );
+                return ( $value !== null );
 
             default:
                 $supportedModules = ezcFeed::getSupportedModules();
@@ -516,6 +518,8 @@
                     return $this->hasModule( $name );;
                 }
         }
+
+        return false;
     }
 
     /**

Modified: trunk/Feed/tests/feed_test.php
==============================================================================
--- trunk/Feed/tests/feed_test.php [iso-8859-1] (original)
+++ trunk/Feed/tests/feed_test.php [iso-8859-1] Fri Feb 22 15:09:22 2008
@@ -224,6 +224,42 @@
         $this->assertEquals( 'application/atom+xml', $feed->getContentType() );
     }
 
+    public function testParseAtomUnsupportedModule()
+    {
+        $dot = DIRECTORY_SEPARATOR;
+        $file = dirname( __FILE__ ) . 
"{$dot}atom{$dot}data{$dot}atom_example_from_specs.xml";
+
+        $feed = ezcFeed::parse( $file );
+
+        try
+        {
+            $module = $feed->unsupported_module;
+            $this->fail( 'Expected exception not thrown' );
+        }
+        catch ( ezcFeedUnsupportedModuleException $e )
+        {
+            $this->assertEquals( "The module 'unsupported_module' is not 
supported.", $e->getMessage() );
+        }
+    }
+
+    public function testParseAtomUndefinedModule()
+    {
+        $dot = DIRECTORY_SEPARATOR;
+        $file = dirname( __FILE__ ) . 
"{$dot}atom{$dot}data{$dot}atom_example_from_specs.xml";
+
+        $feed = ezcFeed::parse( $file );
+
+        try
+        {
+            $module = $feed->iTunes;
+            $this->fail( 'Expected exception not thrown' );
+        }
+        catch ( ezcFeedUndefinedModuleException $e )
+        {
+            $this->assertEquals( "The module 'iTunes' is not defined yet.", 
$e->getMessage() );
+        }
+    }
+
     public function testParseAtom1()
     {
         $dot = DIRECTORY_SEPARATOR;
@@ -233,6 +269,8 @@
 
         $this->assertEquals( 'atom', $feed->getFeedType() );
         $this->assertEquals( 'application/atom+xml', $feed->getContentType() );
+        $this->assertEquals( false, isset( $feed->skipDays ) );
+        $this->assertEquals( false, isset( $feed->unsupportedModule ) );
     }
 
     public function testParseAtom2()
@@ -289,6 +327,9 @@
 
         $this->assertEquals( 'rss2', $feed->getFeedType() );
         $this->assertEquals( 'LibriVox Audiobooks', $feed->title->__toString() 
);
+
+        $modules = $feed->getModules();
+        $this->assertEquals( true, isset( $modules['iTunes'] ) );
     }
 
     public function testParseRss2Podcast2()


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

Reply via email to