Completed
Push — master ( 532882...fad386 )
by
unknown
03:29
created

UI/PageRenderer/TemplatePageRendererTest.php (1 issue)

Severity

Upgrade to new PHP Analysis Engine

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
testRenderPage uses the super-global variable $GLOBALS which is generally not recommended.

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:

// Bad
class Router
{
    public function generate($path)
    {
        return $_SERVER['HOST'].$path;
    }
}

// Better
class Router
{
    private $host;

    public function __construct($host)
    {
        $this->host = $host;
    }

    public function generate($path)
    {
        return $this->host.$path;
    }
}

class Controller
{
    public function myAction(Request $request)
    {
        // Instead of
        $page = isset($_GET['page']) ? intval($_GET['page']) : 1;

        // Better (assuming you use the Symfony2 request)
        $page = $request->query->get('page', 1);
    }
}
Loading history...
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