Merge "Set MW_INSTALL_PATH in Maintenance.php"
[lhc/web/wiklou.git] / tests / phpunit / structure / AutoLoaderStructureTest.php
index 8be5760..2ae6a78 100644 (file)
@@ -40,8 +40,11 @@ class AutoLoaderStructureTest extends MediaWikiTestCase {
                list( $classesInFile, $aliasesInFile ) = self::parseFile( $contents );
                $classes = array_keys( $classesInFile );
                if ( $classes ) {
-                       $this->assertCount( 1, $classes,
-                               "Only one class per file in PSR-4 autoloaded classes ($file)" );
+                       $this->assertCount(
+                               1,
+                               $classes,
+                               "Only one class per file in PSR-4 autoloaded classes ($file)"
+                       );
 
                        // Check that the expected class name (based on the filename) is the
                        // same as the one we found.
@@ -78,7 +81,7 @@ class AutoLoaderStructureTest extends MediaWikiTestCase {
                preg_match_all( '/
                                ^ [\t ]* (?:
                                        (?:final\s+)? (?:abstract\s+)? (?:class|interface|trait) \s+
-                                       (?P<class> [a-zA-Z0-9_]+)
+                                       (?P<class> \w+)
                                |
                                        class_alias \s* \( \s*
                                                ([\'"]) (?P<original> [^\'"]+) \g{-2} \s* , \s*
@@ -86,7 +89,7 @@ class AutoLoaderStructureTest extends MediaWikiTestCase {
                                        \) \s* ;
                                |
                                        class_alias \s* \( \s*
-                                               (?P<originalStatic> [a-zA-Z0-9_]+)::class \s* , \s*
+                                               (?P<originalStatic> [\w\\\\]+)::class \s* , \s*
                                                ([\'"]) (?P<aliasString> [^\'"]+ ) \g{-2} \s*
                                        \) \s* ;
                                )
@@ -96,7 +99,7 @@ class AutoLoaderStructureTest extends MediaWikiTestCase {
                preg_match( '/
                                ^ [\t ]*
                                        namespace \s+
-                                               ([a-zA-Z0-9_]+(\\\\[a-zA-Z0-9_]+)*)
+                                               (\w+(\\\\\w+)*)
                                        \s* ;
                        /imx', $contents, $namespaceMatch );
                $fileNamespace = $namespaceMatch ? $namespaceMatch[1] . '\\' : '';
@@ -109,14 +112,12 @@ class AutoLoaderStructureTest extends MediaWikiTestCase {
                                // 'class Foo {}'
                                $class = $fileNamespace . $match['class'];
                                $classesInFile[$class] = true;
+                       } elseif ( !empty( $match['original'] ) ) {
+                               // 'class_alias( "Foo", "Bar" );'
+                               $aliasesInFile[$match['alias']] = $match['original'];
                        } else {
-                               if ( !empty( $match['original'] ) ) {
-                                       // 'class_alias( "Foo", "Bar" );'
-                                       $aliasesInFile[$match['alias']] = $match['original'];
-                               } else {
-                                       // 'class_alias( Foo::class, "Bar" );'
-                                       $aliasesInFile[$match['aliasString']] = $fileNamespace . $match['originalStatic'];
-                               }
+                               // 'class_alias( Foo::class, "Bar" );'
+                               $aliasesInFile[$match['aliasString']] = $fileNamespace . $match['originalStatic'];
                        }
                }
 
@@ -135,9 +136,7 @@ class AutoLoaderStructureTest extends MediaWikiTestCase {
                        $psr4Namespaces[rtrim( $ns, '\\' ) . '\\'] = rtrim( $path, '/' );
                }
 
-               $files = array_unique( $expected );
-
-               foreach ( $files as $class => $file ) {
+               foreach ( $expected as $class => $file ) {
                        // Only prefix $IP if it doesn't have it already.
                        // Generally local classes don't have it, and those from extensions and test suites do.
                        if ( substr( $file, 0, 1 ) != '/' && substr( $file, 1, 1 ) != ':' ) {