Merge "Revert "Log the reason why revision->getContent() returns null""
[lhc/web/wiklou.git] / tests / phpunit / languages / SpecialPageAliasTest.php
1 <?php
2
3 /**
4 * Verifies that special page aliases are valid, with no slashes.
5 *
6 * @group Language
7 * @group SpecialPageAliases
8 * @group SystemTest
9 * @group medium
10 *
11 * @author Katie Filbert < aude.wiki@gmail.com >
12 */
13 class SpecialPageAliasTest extends MediaWikiTestCase {
14
15 /**
16 * @dataProvider validSpecialPageAliasesProvider
17 */
18 public function testValidSpecialPageAliases( $code, $specialPageAliases ) {
19 foreach ( $specialPageAliases as $specialPage => $aliases ) {
20 foreach ( $aliases as $alias ) {
21 $msg = "$specialPage alias '$alias' in $code is valid with no slashes";
22 $this->assertRegExp( '/^[^\/]*$/', $msg );
23 }
24 }
25 }
26
27 public function validSpecialPageAliasesProvider() {
28 $codes = array_keys( Language::fetchLanguageNames( null, 'mwfile' ) );
29
30 $data = [];
31
32 foreach ( $codes as $code ) {
33 $specialPageAliases = $this->getSpecialPageAliases( $code );
34
35 if ( $specialPageAliases !== [] ) {
36 $data[] = [ $code, $specialPageAliases ];
37 }
38 }
39
40 return $data;
41 }
42
43 /**
44 * @param string $code
45 *
46 * @return array
47 */
48 protected function getSpecialPageAliases( $code ) {
49 $file = Language::getMessagesFileName( $code );
50
51 if ( is_readable( $file ) ) {
52 include $file;
53
54 if ( isset( $specialPageAliases ) && $specialPageAliases !== null ) {
55 return $specialPageAliases;
56 }
57 }
58
59 return [];
60 }
61
62 }