Separate MediaWiki unit and integration tests
[lhc/web/wiklou.git] / tests / phpunit / unit / includes / Revision / MainSlotRoleHandlerTest.php
1 <?php
2
3 namespace MediaWiki\Tests\Revision;
4
5 use MediaWiki\Revision\MainSlotRoleHandler;
6 use PHPUnit\Framework\MockObject\MockObject;
7 use Title;
8
9 /**
10 * @covers \MediaWiki\Revision\MainSlotRoleHandler
11 */
12 class MainSlotRoleHandlerTest extends \MediaWikiUnitTestCase {
13
14 private function makeTitleObject( $ns ) {
15 /** @var Title|MockObject $title */
16 $title = $this->getMockBuilder( Title::class )
17 ->disableOriginalConstructor()
18 ->getMock();
19
20 $title->method( 'getNamespace' )
21 ->willReturn( $ns );
22
23 return $title;
24 }
25
26 /**
27 * @covers \MediaWiki\Revision\MainSlotRoleHandler::__construct
28 * @covers \MediaWiki\Revision\MainSlotRoleHandler::getRole()
29 * @covers \MediaWiki\Revision\MainSlotRoleHandler::getNameMessageKey()
30 * @covers \MediaWiki\Revision\MainSlotRoleHandler::getOutputLayoutHints()
31 */
32 public function testConstruction() {
33 $handler = new MainSlotRoleHandler( [] );
34 $this->assertSame( 'main', $handler->getRole() );
35 $this->assertSame( 'slot-name-main', $handler->getNameMessageKey() );
36
37 $hints = $handler->getOutputLayoutHints();
38 $this->assertArrayHasKey( 'display', $hints );
39 $this->assertArrayHasKey( 'region', $hints );
40 $this->assertArrayHasKey( 'placement', $hints );
41 }
42
43 /**
44 * @covers \MediaWiki\Revision\MainSlotRoleHandler::getDefaultModel()
45 */
46 public function testFetDefaultModel() {
47 $handler = new MainSlotRoleHandler( [ 100 => CONTENT_MODEL_TEXT ] );
48
49 // For the main handler, the namespace determins the default model
50 $titleMain = $this->makeTitleObject( NS_MAIN );
51 $this->assertSame( CONTENT_MODEL_WIKITEXT, $handler->getDefaultModel( $titleMain ) );
52
53 $title100 = $this->makeTitleObject( 100 );
54 $this->assertSame( CONTENT_MODEL_TEXT, $handler->getDefaultModel( $title100 ) );
55 }
56
57 /**
58 * @covers \MediaWiki\Revision\MainSlotRoleHandler::isAllowedModel()
59 */
60 public function testIsAllowedModel() {
61 $handler = new MainSlotRoleHandler( [] );
62
63 // For the main handler, (nearly) all models are allowed
64 $title = $this->makeTitleObject( NS_MAIN );
65 $this->assertTrue( $handler->isAllowedModel( CONTENT_MODEL_WIKITEXT, $title ) );
66 $this->assertTrue( $handler->isAllowedModel( CONTENT_MODEL_TEXT, $title ) );
67 }
68
69 /**
70 * @covers \MediaWiki\Revision\MainSlotRoleHandler::supportsArticleCount()
71 */
72 public function testSupportsArticleCount() {
73 $handler = new MainSlotRoleHandler( [] );
74
75 $this->assertTrue( $handler->supportsArticleCount() );
76 }
77
78 }