Compare commits

...

4 Commits
v2.2.0 ... 2.1

Author SHA1 Message Date
Fabien Potencier
0e9d7c1215 fixed CS 2013-05-06 12:48:41 +02:00
Tim Nagel
05639e1018 Fixed test to use Reflection 2013-03-08 15:45:32 +11:00
Kris Wallsmith
4288c63972 [ClassLoader] tweaked test 2013-03-03 08:31:27 -08:00
Kris Wallsmith
bdb7ba2680 [ClassLoader] made DebugClassLoader idempotent 2013-03-02 11:24:53 -08:00
2 changed files with 53 additions and 1 deletions

View File

@@ -53,7 +53,7 @@ class DebugClassLoader
}
foreach ($functions as $function) {
if (is_array($function) && method_exists($function[0], 'findFile')) {
if (is_array($function) && !$function[0] instanceof self && method_exists($function[0], 'findFile')) {
$function = array(new static($function[0]), 'loadClass');
}

View File

@@ -0,0 +1,52 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\ClassLoader\Tests;
use Symfony\Component\ClassLoader\ClassLoader;
use Symfony\Component\ClassLoader\DebugClassLoader;
class DebugClassLoaderTest extends \PHPUnit_Framework_TestCase
{
private $loader;
protected function setUp()
{
$this->loader = new ClassLoader();
spl_autoload_register(array($this->loader, 'loadClass'));
}
protected function tearDown()
{
spl_autoload_unregister(array($this->loader, 'loadClass'));
}
public function testIdempotence()
{
DebugClassLoader::enable();
DebugClassLoader::enable();
$functions = spl_autoload_functions();
foreach ($functions as $function) {
if (is_array($function) && $function[0] instanceof DebugClassLoader) {
$reflClass = new \ReflectionClass($function[0]);
$reflProp = $reflClass->getProperty('classFinder');
$reflProp->setAccessible(true);
$this->assertNotInstanceOf('Symfony\Component\ClassLoader\DebugClassLoader', $reflProp->getValue($function[0]));
return;
}
}
throw new \Exception('DebugClassLoader did not register');
}
}