<?php
$deprecatedMapping = [ // LanguageCode::DEPRECATED_LANGUAGE_CODE_MAPPING
// Note that als is actually a valid ISO 639 code (Tosk Albanian), but it
// was previously used in MediaWiki for Alsatian, which comes under gsw
'als' => 'gsw', // T25215
'bat-smg' => 'sgs', // T27522
'be-x-old' => 'be-tarask', // T11823
'fiu-vro' => 'vro', // T31186
'roa-rup' => 'rup', // T17988
'zh-classical' => 'lzh', // T30443
'zh-min-nan' => 'nan', // T30442
'zh-yue' => 'yue', // T30441
];
$interwikiCache = eval( '?>' . file_get_contents( 'https://noc.wikimedia.org/conf/interwiki.php.txt' ) );
$i = 1;
$ok = true;
foreach ( $interwikiCache as $key => $value ) {
[ $prefix, $interwiki ] = explode( ':', $key, 2 );
if ( ( $replacementInterwiki = $deprecatedMapping[ $interwiki ] ?? null ) !== null ) {
$replacementKey = "$prefix:$replacementInterwiki";
if ( ( $replacementValue = $interwikiCache[ $replacementKey ] ) === $value ) {
echo "ok $i - $key == $replacementKey" . PHP_EOL;
} else {
echo "not ok $i - $key ($value) !== $replacementKey ($replacementValue)" . PHP_EOL;
$ok = false;
}
++$i;
}
}
echo "1.." . (--$i) . PHP_EOL;
exit( $ok ? 0 : 1 );