TitleParser: In formatTitle(), don't throw exceptions on bad namespaces
This ocassionally happens for whatever reason, but it doesn't really make sense to throw an exception when creating a broken-looking link would also work. We already do this for TitleParser::getPrefixedDBkey(), and this also matches the behavior of Title::getNsText(). Bug: T136352 Bug: T136356 Change-Id: Ic7eb17f8917f7fbb28b11d94b742dac1fe5582a1
This commit is contained in:
parent
6a4057d389
commit
a22ab0eab0
2 changed files with 10 additions and 3 deletions
|
|
@ -105,10 +105,16 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
|
|||
*/
|
||||
public function formatTitle( $namespace, $text, $fragment = '', $interwiki = '' ) {
|
||||
if ( $namespace !== false ) {
|
||||
$namespace = $this->getNamespaceName( $namespace, $text );
|
||||
// Try to get a namespace name, but fallback
|
||||
// to empty string if it doesn't exist
|
||||
try {
|
||||
$nsName = $this->getNamespaceName( $namespace, $text );
|
||||
} catch ( InvalidArgumentException $e ) {
|
||||
$nsName = '';
|
||||
}
|
||||
|
||||
if ( $namespace !== '' ) {
|
||||
$text = $namespace . ':' . $text;
|
||||
if ( $namespace !== 0 ) {
|
||||
$text = $nsName . ':' . $text;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -164,6 +164,7 @@ class MediaWikiTitleCodecTest extends MediaWikiTestCase {
|
|||
// getGenderCache() provides a mock that considers first
|
||||
// names ending in "a" to be female.
|
||||
[ NS_USER, 'Lisa_Müller', '', 'de', 'Benutzerin:Lisa Müller' ],
|
||||
[ 1000000, 'Invalid_namespace', '', 'en', ':Invalid namespace' ],
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue