wiki.techinc.nl/tests/phpunit/includes/utils/ClassCollectorTest.php
WMDE-Fisch 64d7c7e6ec Do not concat exception class name in Timestamp compat
It seems this is not necessary and confused my IDE in thinking
'Exception' is an alias for TimestampException.

Given that we use a namespaced reference to the class,
ClassCollector still won't see it. Updated test to verify that.

Change-Id: I7c9258c5739a64959442af1296e2b93395260894
2018-02-02 10:40:48 -08:00

56 lines
1.2 KiB
PHP

<?php
/**
* @covers ClassCollector
*/
class ClassCollectorTest extends PHPUnit_Framework_TestCase {
use MediaWikiCoversValidator;
public static function provideCases() {
return [
[
"class Foo {}",
[ 'Foo' ],
],
[
"namespace Example;\nclass Foo {}\nclass Bar {}",
[ 'Example\Foo', 'Example\Bar' ],
],
[
"class_alias( 'Foo', 'Bar' );",
[ 'Bar' ],
],
[
"namespace Example;\nclass Foo {}\nclass_alias( 'Example\Foo', 'Foo' );",
[ 'Example\Foo', 'Foo' ],
],
[
"namespace Example;\nclass Foo {}\nclass_alias( 'Example\Foo', 'Bar' );",
[ 'Example\Foo', 'Bar' ],
],
[
"class_alias( Foo::class, 'Bar' );",
[ 'Bar' ],
],
[
// Namespaced class is not currently supported. Must use namespace declaration
// earlier in the file.
"class_alias( Example\Foo::class, 'Bar' );",
[],
],
[
"namespace Example;\nclass Foo {}\nclass_alias( Foo::class, 'Bar' );",
[ 'Example\Foo', 'Bar' ],
],
];
}
/**
* @dataProvider provideCases
*/
public function testGetClasses( $code, array $classes, $message = null ) {
$cc = new ClassCollector();
$this->assertEquals( $classes, $cc->getClasses( "<?php\n$code" ), $message );
}
}