These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | namespace Tests\Unit\SubPageList\UI\PageRenderer; |
||
4 | |||
5 | use SubPageList\Lister\Page; |
||
6 | use SubPageList\Lister\UI\PageRenderer\TemplatePageRenderer; |
||
7 | use Title; |
||
8 | |||
9 | /** |
||
10 | * @covers SubPageList\Lister\UI\PageRenderer\TemplatePageRenderer |
||
11 | * |
||
12 | * @group SubPageList |
||
13 | * |
||
14 | * @licence GNU GPL v2+ |
||
15 | * @author Jeroen De Dauw < [email protected] > |
||
16 | */ |
||
17 | class TemplatePageRendererTest extends \PHPUnit_Framework_TestCase { |
||
18 | |||
19 | /** |
||
20 | * @dataProvider renderProvider |
||
21 | */ |
||
22 | public function testRenderPage( Page $page, $templateName, $expected ) { |
||
0 ignored issues
–
show
|
|||
23 | $GLOBALS['wgNamespacesWithSubpages'][NS_MAIN] = true; |
||
24 | |||
25 | $basicRenderer = $this->getMock( 'SubPageList\Lister\UI\PageRenderer\PageRenderer' ); |
||
26 | |||
27 | $basicRenderer->expects( $this->once() ) |
||
28 | ->method( 'renderPage' ) |
||
29 | ->with( $this->equalTo( $page ) ) |
||
30 | ->will( $this->returnValue( 'Ohi' ) ); |
||
31 | |||
32 | $renderer = new TemplatePageRenderer( |
||
33 | $basicRenderer, |
||
34 | $templateName |
||
35 | ); |
||
36 | |||
37 | $actual = $renderer->renderPage( $page ); |
||
38 | |||
39 | $this->assertEquals( $expected, $actual ); |
||
40 | } |
||
41 | |||
42 | public function renderProvider() { |
||
43 | return [ |
||
44 | [ |
||
45 | new Page( Title::newFromText( 'AAA' ) ), |
||
46 | 'MyTemplate', |
||
47 | '{{MyTemplate|Ohi}}', |
||
48 | ], |
||
49 | [ |
||
50 | new Page( Title::newFromText( 'AAA/BBB' ) ), |
||
51 | 'MyTemplate', |
||
52 | '{{MyTemplate|Ohi}}', |
||
53 | ], |
||
54 | [ |
||
55 | new Page( Title::newFromText( 'Foo:Bar' ) ), |
||
56 | 'MyTemplate', |
||
57 | '{{MyTemplate|Ohi}}', |
||
58 | ], |
||
59 | [ |
||
60 | new Page( Title::newFromText( 'Foo:Bar/Baz' ) ), |
||
61 | 'MyTemplate', |
||
62 | '{{MyTemplate|Ohi}}', |
||
63 | ], |
||
64 | ]; |
||
65 | } |
||
66 | |||
67 | } |
||
68 |
Instead of super-globals, we recommend to explicitly inject the dependencies of your class. This makes your code less dependent on global state and it becomes generally more testable: