wiki.techinc.nl/tests/phpunit/mocks/MockMessageLocalizer.php
Bartosz Dziewoński c9f73efd5a Namespace MessageSpecifier under Wikimedia\Message\
In change I625a48a6ecd3fad5c2ed76b23343a0fef91e1b83 I am planning to
make Wikimedia\Message\MessageValue use it, and we try to pretend that
it is a library separate from MediaWiki, so it makes sense to move
MessageSpecifier to the same namespace under Wikimedia\.

Bug: T353458
Change-Id: I9ff4ff7beb098b60c92f564591937c7d789c6684
2024-07-28 14:21:32 +02:00

49 lines
1.2 KiB
PHP

<?php
use MediaWiki\Message\Message;
use Wikimedia\Message\MessageSpecifier;
/**
* A simple {@link MessageLocalizer} implementation for use in tests.
* By default, it sets the message language to 'qqx',
* to make the tests independent of the wiki configuration.
*
* @author Lucas Werkmeister
* @license GPL-2.0-or-later
*/
class MockMessageLocalizer implements MessageLocalizer {
/**
* @var string|null
*/
private $languageCode;
/**
* @param string|null $languageCode The language code to use for messages by default.
* You can specify null to use the user language,
* but this is not recommended as it may make your tests depend on the wiki configuration.
*/
public function __construct( $languageCode = 'qqx' ) {
$this->languageCode = $languageCode;
}
/**
* Get a Message object.
* Parameters are the same as {@link wfMessage()}.
*
* @param string|string[]|MessageSpecifier $key Message key, or array of keys,
* or a MessageSpecifier.
* @param mixed ...$params
* @return Message
*/
public function msg( $key, ...$params ) {
$message = wfMessage( $key, ...$params );
if ( $this->languageCode !== null ) {
$message->inLanguage( $this->languageCode );
}
return $message;
}
}