3 namespace MediaWiki\Tests\Revision
;
5 use MediaWiki\Revision\MainSlotRoleHandler
;
6 use PHPUnit\Framework\MockObject\MockObject
;
10 * @covers \MediaWiki\Revision\MainSlotRoleHandler
12 class MainSlotRoleHandlerTest
extends \MediaWikiIntegrationTestCase
{
14 private function makeTitleObject( $ns ) {
15 /** @var Title|MockObject $title */
16 $title = $this->getMockBuilder( Title
::class )
17 ->disableOriginalConstructor()
20 $title->method( 'getNamespace' )
27 * @covers \MediaWiki\Revision\MainSlotRoleHandler::__construct
28 * @covers \MediaWiki\Revision\MainSlotRoleHandler::getRole()
29 * @covers \MediaWiki\Revision\MainSlotRoleHandler::getNameMessageKey()
30 * @covers \MediaWiki\Revision\MainSlotRoleHandler::getOutputLayoutHints()
32 public function testConstruction() {
33 $handler = new MainSlotRoleHandler( [] );
34 $this->assertSame( 'main', $handler->getRole() );
35 $this->assertSame( 'slot-name-main', $handler->getNameMessageKey() );
37 $hints = $handler->getOutputLayoutHints();
38 $this->assertArrayHasKey( 'display', $hints );
39 $this->assertArrayHasKey( 'region', $hints );
40 $this->assertArrayHasKey( 'placement', $hints );
44 * @covers \MediaWiki\Revision\MainSlotRoleHandler::getDefaultModel()
46 public function testFetDefaultModel() {
47 $handler = new MainSlotRoleHandler( [ 100 => CONTENT_MODEL_TEXT
] );
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 ) );
53 $title100 = $this->makeTitleObject( 100 );
54 $this->assertSame( CONTENT_MODEL_TEXT
, $handler->getDefaultModel( $title100 ) );
58 * @covers \MediaWiki\Revision\MainSlotRoleHandler::isAllowedModel()
60 public function testIsAllowedModel() {
61 $handler = new MainSlotRoleHandler( [] );
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 ) );
70 * @covers \MediaWiki\Revision\MainSlotRoleHandler::supportsArticleCount()
72 public function testSupportsArticleCount() {
73 $handler = new MainSlotRoleHandler( [] );
75 $this->assertTrue( $handler->supportsArticleCount() );