Remove hard deprecation of PasswordPolicyChecks::checkPopularPasswordBlacklist
[lhc/web/wiklou.git] / tests / phpunit / includes / MagicWordFactoryTest.php
1 <?php
2
3 /**
4 * @covers \MagicWordFactory
5 *
6 * @author Derick N. Alangi
7 */
8 class MagicWordFactoryTest extends MediaWikiTestCase {
9 private function makeMagicWordFactory( Language $contLang = null ) {
10 return new MagicWordFactory( $contLang ?: Language::factory( 'en' ) );
11 }
12
13 public function testGetContentLanguage() {
14 $contLang = Language::factory( 'en' );
15
16 $magicWordFactory = $this->makeMagicWordFactory( $contLang );
17 $magicWordContLang = $magicWordFactory->getContentLanguage();
18
19 $this->assertSame( $contLang, $magicWordContLang );
20 }
21
22 public function testGetMagicWord() {
23 $magicWordIdValid = 'pageid';
24 $magicWordFactory = $this->makeMagicWordFactory();
25 $mwActual = $magicWordFactory->get( $magicWordIdValid );
26 $contLang = $magicWordFactory->getContentLanguage();
27 $expected = new MagicWord( $magicWordIdValid, [ 'PAGEID' ], false, $contLang );
28
29 $this->assertEquals( $expected, $mwActual );
30 }
31
32 public function testGetInvalidMagicWord() {
33 $magicWordFactory = $this->makeMagicWordFactory();
34
35 $this->setExpectedException( MWException::class );
36 \Wikimedia\suppressWarnings();
37 try {
38 $magicWordFactory->get( 'invalid magic word' );
39 } finally {
40 \Wikimedia\restoreWarnings();
41 }
42 }
43
44 public function testGetVariableIDs() {
45 $magicWordFactory = $this->makeMagicWordFactory();
46 $varIds = $magicWordFactory->getVariableIDs();
47
48 $this->assertInternalType( 'array', $varIds );
49 $this->assertNotEmpty( $varIds );
50 $this->assertContainsOnly( 'string', $varIds );
51 }
52
53 public function testGetSubstIDs() {
54 $magicWordFactory = $this->makeMagicWordFactory();
55 $substIds = $magicWordFactory->getSubstIDs();
56
57 $this->assertInternalType( 'array', $substIds );
58 $this->assertNotEmpty( $substIds );
59 $this->assertContainsOnly( 'string', $substIds );
60 }
61
62 /**
63 * Test both valid and invalid caching hints paths
64 */
65 public function testGetCacheTTL() {
66 $magicWordFactory = $this->makeMagicWordFactory();
67 $actual = $magicWordFactory->getCacheTTL( 'localday' );
68
69 $this->assertSame( 3600, $actual );
70
71 $actual = $magicWordFactory->getCacheTTL( 'currentmonth' );
72 $this->assertSame( 86400, $actual );
73
74 $actual = $magicWordFactory->getCacheTTL( 'invalid' );
75 $this->assertSame( -1, $actual );
76 }
77
78 public function testGetDoubleUnderscoreArray() {
79 $magicWordFactory = $this->makeMagicWordFactory();
80 $actual = $magicWordFactory->getDoubleUnderscoreArray();
81
82 $this->assertInstanceOf( MagicWordArray::class, $actual );
83 }
84 }