4 protected function setUp() {
10 $this->testLocalClasses =
array(
11 'TestAutoloadedLocalClass' => __DIR__ .
'/../data/autoloader/TestAutoloadedLocalClass.php',
12 'TestAutoloadedCamlClass' => __DIR__ .
'/../data/autoloader/TestAutoloadedCamlClass.php',
13 'TestAutoloadedSerializedClass' => __DIR__ .
'/../data/autoloader/TestAutoloadedSerializedClass.php',
18 $this->testExtensionClasses =
array(
19 'TestAutoloadedClass' => __DIR__ .
'/../data/autoloader/TestAutoloadedClass.php',
46 $files = array_unique( $expected );
51 if ( substr(
$file, 0, 1 ) !=
'/' && substr(
$file, 1, 1 ) !=
':' ) {
52 $filePath =
"$IP/$file";
57 $contents = file_get_contents( $filePath );
63 (?:final\s+)? (?:abstract\s+)? (?:class|interface) \s+
64 (?P<class> [a-zA-Z0-9_]+)
66 class_alias \s* \( \s*
67 ([\'"]) (?P<original> [^\'"]+) \g{-2} \s* , \s*
68 ([\'"]) (?P<alias> [^\'"]+ ) \g{-2} \s*
71 /imx', $contents,
$matches, PREG_SET_ORDER );
73 $namespaceMatch =
array();
77 ([a-zA-Z0-9_]+(\\\\[a-zA-Z0-9_]+)*)
79 /imx', $contents, $namespaceMatch );
80 $fileNamespace = $namespaceMatch ? $namespaceMatch[1] .
'\\' :
'';
82 $classesInFile =
array();
83 $aliasesInFile =
array();
86 if ( !empty( $match[
'class'] ) ) {
87 $class = $fileNamespace . $match[
'class'];
88 $actual[$class] =
$file;
89 $classesInFile[$class] =
true;
91 $aliasesInFile[$match[
'alias']] = $match[
'original'];
98 foreach ( $aliasesInFile
as $alias => $class ) {
99 if ( isset( $classesInFile[$class] ) ) {
100 $actual[$alias] =
$file;
102 $actual[$alias] =
"[original class not in $file]";
108 'expected' => $expected,
114 $this->assertTrue( class_exists(
'TestAutoloadedLocalClass' ) );
118 $this->assertTrue( class_exists(
'TestAutoloadedClass' ) );
122 $this->assertTrue( class_exists(
'testautoLoadedcamlCLASS' ) );
126 $dummyCereal =
'O:29:"testautoloadedserializedclass":0:{}';
127 $uncerealized = unserialize( $dummyCereal );
128 $this->assertFalse( $uncerealized instanceof __PHP_Incomplete_Class,
129 "unserialize() can load classes case-insensitively." );