wiki.techinc.nl/tests/phpunit/includes/MagicWordFactoryTest.php
addshore 959bc315f2 MediaWikiTestCase to MediaWikiIntegrationTestCase
The name change happened some time ago, and I think its
about time to start using the name name!
(Done with a find and replace)

My personal motivation for doing this is that I have started
trying out vscode as an IDE for mediawiki development, and
right now it doesn't appear to handle php aliases very well
or at all.

Change-Id: I412235d91ae26e4c1c6a62e0dbb7e7cf3c5ed4a6
2020-06-30 17:02:22 +01:00

90 lines
2.6 KiB
PHP

<?php
use MediaWiki\MediaWikiServices;
/**
* @covers \MagicWordFactory
*
* @author Derick N. Alangi
*/
class MagicWordFactoryTest extends MediaWikiIntegrationTestCase {
private function makeMagicWordFactory( Language $contLang = null ) {
$services = MediaWikiServices::getInstance();
return new MagicWordFactory( $contLang ?:
$services->getLanguageFactory()->getLanguage( 'en' ),
$services->getHookContainer()
);
}
public function testGetContentLanguage() {
$contLang = MediaWikiServices::getInstance()->getLanguageFactory()->getLanguage( 'en' );
$magicWordFactory = $this->makeMagicWordFactory( $contLang );
$magicWordContLang = $magicWordFactory->getContentLanguage();
$this->assertSame( $contLang, $magicWordContLang );
}
public function testGetMagicWord() {
$magicWordIdValid = 'pageid';
$magicWordFactory = $this->makeMagicWordFactory();
$mwActual = $magicWordFactory->get( $magicWordIdValid );
$contLang = $magicWordFactory->getContentLanguage();
$expected = new MagicWord( $magicWordIdValid, [ 'PAGEID' ], false, $contLang );
$this->assertEquals( $expected, $mwActual );
}
public function testGetInvalidMagicWord() {
$magicWordFactory = $this->makeMagicWordFactory();
$this->expectException( MWException::class );
\Wikimedia\suppressWarnings();
try {
$magicWordFactory->get( 'invalid magic word' );
} finally {
\Wikimedia\restoreWarnings();
}
}
public function testGetVariableIDs() {
$magicWordFactory = $this->makeMagicWordFactory();
$varIds = $magicWordFactory->getVariableIDs();
$this->assertIsArray( $varIds );
$this->assertNotEmpty( $varIds );
$this->assertContainsOnly( 'string', $varIds );
}
public function testGetSubstIDs() {
$magicWordFactory = $this->makeMagicWordFactory();
$substIds = $magicWordFactory->getSubstIDs();
$this->assertIsArray( $substIds );
$this->assertNotEmpty( $substIds );
$this->assertContainsOnly( 'string', $substIds );
}
/**
* Test both valid and invalid caching hints paths
*/
public function testGetCacheTTL() {
$magicWordFactory = $this->makeMagicWordFactory();
$actual = $magicWordFactory->getCacheTTL( 'localday' );
$this->assertSame( 3600, $actual );
$actual = $magicWordFactory->getCacheTTL( 'currentmonth' );
$this->assertSame( 86400, $actual );
$actual = $magicWordFactory->getCacheTTL( 'invalid' );
$this->assertSame( -1, $actual );
}
public function testGetDoubleUnderscoreArray() {
$magicWordFactory = $this->makeMagicWordFactory();
$actual = $magicWordFactory->getDoubleUnderscoreArray();
$this->assertInstanceOf( MagicWordArray::class, $actual );
}
}