e8a228e314a4edb766d4f2e1642c61d879d1699b
[lhc/web/wiklou.git] / tests / phpunit / includes / utils / ClassCollectorTest.php
1 <?php
2
3 /**
4 * @covers ClassCollector
5 */
6 class ClassCollectorTest extends PHPUnit_Framework_TestCase {
7
8 public static function provideCases() {
9 return [
10 [
11 "class Foo {}",
12 [ 'Foo' ],
13 ],
14 [
15 "namespace Example;\nclass Foo {}\nclass Bar {}",
16 [ 'Example\Foo', 'Example\Bar' ],
17 ],
18 [
19 "class_alias( 'Foo', 'Bar' );",
20 [ 'Bar' ],
21 ],
22 [
23 "namespace Example;\nclass Foo {}\nclass_alias( 'Example\Foo', 'Foo' );",
24 [ 'Example\Foo', 'Foo' ],
25 ],
26 [
27 "namespace Example;\nclass Foo {}\nclass_alias( 'Example\Foo', 'Bar' );",
28 [ 'Example\Foo', 'Bar' ],
29 ],
30 [
31 "class_alias( Foo::class, 'Bar' );",
32 [ 'Bar' ],
33 ],
34 [
35 "namespace Example;\nclass Foo {}\nclass_alias( Foo::class, 'Bar' );",
36 [ 'Example\Foo', 'Bar' ],
37 ],
38 ];
39 }
40
41 /**
42 * @dataProvider provideCases
43 */
44 public function testGetClasses( $code, array $classes, $message = null ) {
45 $cc = new ClassCollector();
46 $this->assertEquals( $classes, $cc->getClasses( "<?php\n$code" ), $message );
47 }
48 }