File: MockMessageLocalizer.php

package info (click to toggle)
mediawiki 1%3A1.43.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 417,464 kB
  • sloc: php: 1,062,949; javascript: 664,290; sql: 9,714; python: 5,458; xml: 3,489; sh: 1,131; makefile: 64
file content (49 lines) | stat: -rw-r--r-- 1,240 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?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;
	}

}