[limb-svn] r7058 - in 3.x/trunk/limb/core: src tests/cases
svn at limb-project.com
svn at limb-project.com
Fri Jun 6 15:00:32 MSD 2008
Author: pachanga
Date: 2008-06-06 15:00:29 +0400 (Fri, 06 Jun 2008)
New Revision: 7058
URL: http://fisheye.limb-project.com/changelog/limb/?cs=7058
Modified:
3.x/trunk/limb/core/src/lmbSerializable.class.php
3.x/trunk/limb/core/tests/cases/lmbSerializableTest.class.php
Log:
-- lmbSerializable throws exception for internal classes
Modified: 3.x/trunk/limb/core/src/lmbSerializable.class.php
===================================================================
--- 3.x/trunk/limb/core/src/lmbSerializable.class.php 2008-06-06 04:57:35 UTC (rev 7057)
+++ 3.x/trunk/limb/core/src/lmbSerializable.class.php 2008-06-06 11:00:29 UTC (rev 7058)
@@ -76,8 +76,9 @@
foreach($classes as $class)
{
$reflect = new ReflectionClass($class);
- if(!$reflect->isInternal())
- $this->class_paths[] = $reflect->getFileName();
+ if($reflect->isInternal())
+ throw new lmbException("Class '$class' can't be serialized since it's an iternal PHP class, consider omitting object of this class by providing custom __sleep, __wakeup handlers");
+ $this->class_paths[] = $reflect->getFileName();
}
}
Modified: 3.x/trunk/limb/core/tests/cases/lmbSerializableTest.class.php
===================================================================
--- 3.x/trunk/limb/core/tests/cases/lmbSerializableTest.class.php 2008-06-06 04:57:35 UTC (rev 7057)
+++ 3.x/trunk/limb/core/tests/cases/lmbSerializableTest.class.php 2008-06-06 11:00:29 UTC (rev 7058)
@@ -60,18 +60,25 @@
$this->assertEqual(lmbSerializable :: extractSerializedClasses($serialized), array('SerializableTestChildStub'));
}
- function testSerializeUnserializeInternalClass()
+ function testSerializingUnserializeInternalClassThrowsException()
{
if(!class_exists('StdObject'))
+ {
+ echo "Notice: Could not check internal class serializing \n";
return;
+ }
$obj = new StdObject;
$obj->foo = "foo";
$container = new lmbSerializable($obj);
- $file = $this->_writeToFile(serialize($container));
- $this->_phpSerializedObjectCall($file, '->foo', "foo");
- unlink($file);
+ try
+ {
+ serialize($container);
+ $this->assertTrue(false);
+ }
+ catch(lmbException $e){}
+
}
function _writeToFile($serialized)
More information about the limb-svn
mailing list