wiki.techinc.nl/tests/phpunit/includes/Revision/FallbackSlotRoleHandlerTest.php
daniel db987c700a [MCR] Introduce SlotRoleHandler and SlotRoleRegistry
These new classes provide a mechanism for defining the
behavior of slots, like the content models it supports.
This acts as an extension point for extensions that need
to define custom slots, like the MediaInfo extension
for the SDC project.

Bug: T194046
Change-Id: Ia20c98eee819293199e541be75b5521f6413bc2f
2018-11-30 12:29:05 -08:00

75 lines
2.3 KiB
PHP

<?php
namespace MediaWiki\Tests\Revision;
use MediaWiki\Revision\FallbackSlotRoleHandler;
use MediaWikiTestCase;
use Title;
/**
* @covers \MediaWiki\Revision\FallbackSlotRoleHandler
*/
class FallbackSlotRoleHandlerTest extends MediaWikiTestCase {
private function makeBlankTitleObject() {
/** @var Title $title */
$title = $this->getMockBuilder( Title::class )
->disableOriginalConstructor()
->getMock();
return $title;
}
/**
* @covers \MediaWiki\Revision\FallbackSlotRoleHandler::__construct
* @covers \MediaWiki\Revision\FallbackSlotRoleHandler::getRole()
* @covers \MediaWiki\Revision\FallbackSlotRoleHandler::getNameMessageKey()
* @covers \MediaWiki\Revision\FallbackSlotRoleHandler::getDefaultModel()
* @covers \MediaWiki\Revision\FallbackSlotRoleHandler::getOutputLayoutHints()
*/
public function testConstruction() {
$handler = new FallbackSlotRoleHandler( 'foo' );
$this->assertSame( 'foo', $handler->getRole() );
$this->assertSame( 'slot-name-foo', $handler->getNameMessageKey() );
$title = $this->makeBlankTitleObject();
$this->assertSame( CONTENT_MODEL_TEXT, $handler->getDefaultModel( $title ) );
$hints = $handler->getOutputLayoutHints();
$this->assertArrayHasKey( 'display', $hints );
$this->assertArrayHasKey( 'region', $hints );
$this->assertArrayHasKey( 'placement', $hints );
}
/**
* @covers \MediaWiki\Revision\FallbackSlotRoleHandler::isAllowedModel()
*/
public function testIsAllowedModel() {
$handler = new FallbackSlotRoleHandler( 'foo', 'FooModel' );
// For the fallback handler, no models are allowed
$title = $this->makeBlankTitleObject();
$this->assertFalse( $handler->isAllowedModel( 'FooModel', $title ) );
$this->assertFalse( $handler->isAllowedModel( 'QuaxModel', $title ) );
}
/**
* @covers \MediaWiki\Revision\SlotRoleHandler::isAllowedModel()
*/
public function testIsAllowedOn() {
$handler = new FallbackSlotRoleHandler( 'foo', 'FooModel' );
$title = $this->makeBlankTitleObject();
$this->assertFalse( $handler->isAllowedOn( $title ) );
}
/**
* @covers \MediaWiki\Revision\FallbackSlotRoleHandler::supportsArticleCount()
*/
public function testSupportsArticleCount() {
$handler = new FallbackSlotRoleHandler( 'foo', 'FooModel' );
$this->assertFalse( $handler->supportsArticleCount() );
}
}