Browse Source

[ZF-11610] Added string cast to ctype_digit call in Zend_Feed_Writer_Feed_FeedAbstract

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@24647 44c647ce-9c0f-0410-b52a-842ac1e357ba
adamlundrigan 14 years ago
parent
commit
87701e2e62

+ 3 - 3
library/Zend/Feed/Writer/Feed/FeedAbstract.php

@@ -176,7 +176,7 @@ class Zend_Feed_Writer_Feed_FeedAbstract
         $zdate = null;
         if ($date === null) {
             $zdate = new Zend_Date;
-        } elseif (ctype_digit($date)) {
+        } elseif (ctype_digit((string)$date)) {
             $zdate = new Zend_Date($date, Zend_Date::TIMESTAMP);
         } elseif ($date instanceof Zend_Date) {
             $zdate = $date;
@@ -197,7 +197,7 @@ class Zend_Feed_Writer_Feed_FeedAbstract
         $zdate = null;
         if ($date === null) {
             $zdate = new Zend_Date;
-        } elseif (ctype_digit($date)) {
+        } elseif (ctype_digit((string)$date)) {
             $zdate = new Zend_Date($date, Zend_Date::TIMESTAMP);
         } elseif ($date instanceof Zend_Date) {
             $zdate = $date;
@@ -218,7 +218,7 @@ class Zend_Feed_Writer_Feed_FeedAbstract
         $zdate = null;
         if ($date === null) {
             $zdate = new Zend_Date;
-        } elseif (ctype_digit($date)) {
+        } elseif (ctype_digit((string)$date)) {
             $zdate = new Zend_Date($date, Zend_Date::TIMESTAMP);
         } elseif ($date instanceof Zend_Date) {
             $zdate = $date;

+ 33 - 0
tests/Zend/Feed/Writer/FeedTest.php

@@ -206,6 +206,17 @@ class Zend_Feed_Writer_FeedTest extends PHPUnit_Framework_TestCase
         $myDate = new Zend_Date('123456789', Zend_Date::TIMESTAMP);
         $this->assertTrue($myDate->equals($writer->getDateCreated()));
     }
+    
+    /**
+     * @group ZF-11610
+     */
+    public function testSetDateCreatedUsesGivenUnixTimestampThatIsAVerySmallInteger()
+    {
+        $writer = new Zend_Feed_Writer_Feed;
+        $writer->setDateCreated(123);
+        $myDate = new Zend_Date('123', Zend_Date::TIMESTAMP);
+        $this->assertTrue($myDate->equals($writer->getDateCreated()));
+    }
 
     public function testSetDateCreatedUsesZendDateObject()
     {
@@ -242,6 +253,17 @@ class Zend_Feed_Writer_FeedTest extends PHPUnit_Framework_TestCase
         $this->assertTrue($myDate->equals($writer->getDateModified()));
     }
 
+    /**
+     * @group ZF-11610
+     */
+    public function testSetDateModifiedUsesGivenUnixTimestampThatIsAVerySmallInteger()
+    {
+        $writer = new Zend_Feed_Writer_Feed;
+        $writer->setDateModified(123);
+        $myDate = new Zend_Date('123', Zend_Date::TIMESTAMP);
+        $this->assertTrue($myDate->equals($writer->getDateModified()));
+    }
+
     public function testSetDateModifiedUsesZendDateObject()
     {
         $writer = new Zend_Feed_Writer_Feed;
@@ -309,6 +331,17 @@ class Zend_Feed_Writer_FeedTest extends PHPUnit_Framework_TestCase
         $this->assertTrue($myDate->equals($writer->getLastBuildDate()));
     }
 
+    /**
+     * @group ZF-11610
+     */
+    public function testSetLastBuildDateUsesGivenUnixTimestampThatIsAVerySmallInteger()
+    {
+        $writer = new Zend_Feed_Writer_Feed;
+        $writer->setLastBuildDate(123);
+        $myDate = new Zend_Date('123', Zend_Date::TIMESTAMP);
+        $this->assertTrue($myDate->equals($writer->getLastBuildDate()));
+    }
+
     public function testSetLastBuildDateUsesZendDateObject()
     {
         $writer = new Zend_Feed_Writer_Feed;