'TestAutoloadedLocalClass' => __DIR__ . '/../data/autoloader/TestAutoloadedLocalClass.php',
'TestAutoloadedCamlClass' => __DIR__ . '/../data/autoloader/TestAutoloadedCamlClass.php',
'TestAutoloadedSerializedClass' => __DIR__ . '/../data/autoloader/TestAutoloadedSerializedClass.php',
+ 'TestAutoloadedAliasedClass' => 'alias:TestAutoloadedAliasedClassNew',
+ 'TestAutoloadedAliasedClassDeprecated' => 'alias:TestAutoloadedAliasedClassNew?v=1.1',
+ 'TestAutoloadedAliasedClassNew' => __DIR__ . '/../data/autoloader/TestAutoloadedAliasedClassNew.php',
);
$this->setMwGlobals( 'wgAutoloadLocalClasses', $this->testLocalClasses + $wgAutoloadLocalClasses );
AutoLoader::resetAutoloadLocalClassesLower();
$expected = $wgAutoloadLocalClasses + $wgAutoloadClasses;
$actual = array();
- $files = array_unique( $expected );
+ // Check aliases
+ foreach ( $expected as $class => $file ) {
+ if ( substr( $file, 0, 6 ) !== 'alias:' ) {
+ // Not an alias, so should be an actual file
+ $files[] = $file;
+ } else {
+ $newClass = substr( $file, 6, strcspn( $file, '?', 6 ) );
+ if ( isset( $expected[$newClass] ) ) {
+ if ( substr( $expected[$newClass], 0, 6 ) !== 'alias:' ) {
+ // Alias pointing to an existing MediaWiki class
+ $actual[$class] = $file;
+ }
+ }
+ }
+ }
+
+ $files = array_unique( $files );
foreach ( $files as $file ) {
// Only prefix $IP if it doesn't have it already.
$this->assertFalse( $uncerealized instanceof __PHP_Incomplete_Class,
"unserialize() can load classes case-insensitively." );
}
+
+ function testAliasedClass() {
+ $this->assertSame( 'TestAutoloadedAliasedClassNew',
+ get_class( new TestAutoloadedAliasedClass ) );
+ }
+
+ function testAliasedClassDeprecated() {
+ wfSuppressWarnings();
+ $this->assertSame( 'TestAutoloadedAliasedClassNew',
+ get_class( new TestAutoloadedAliasedClassDeprecated ) );
+ wfRestoreWarnings();
+ }
}