mirror of
https://github.com/diocloid/LinkTitles.git
synced 2025-07-13 01:39:30 +02:00
Fix handling of target titles with numbers.
- Fix: Improve handling of page titles that start or end with numbers.
This commit is contained in:
@ -81,8 +81,8 @@ class Target {
|
||||
// to detect whole words containing non-ASCII characters as well.
|
||||
// Note that this requires a PCRE library that was compiled with
|
||||
// --enable-unicode-properties
|
||||
( $config->wordStartOnly ) ? $this->wordStart = '(?<!\pL)' : $this->wordStart = '';
|
||||
( $config->wordEndOnly ) ? $this->wordEnd = '(?!\pL)' : $this->wordEnd = '';
|
||||
( $config->wordStartOnly ) ? $this->wordStart = '(?<!\pL|\pN)' : $this->wordStart = '';
|
||||
( $config->wordEndOnly ) ? $this->wordEnd = '(?!\pL|\pN)' : $this->wordEnd = '';
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -47,6 +47,44 @@ class LinkTitlesLinkerTest extends LinkTitles\TestCase {
|
||||
parent::addDBDataOnce(); // call parent after adding page to have targets invalidated
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideTestTitleWithNumberData
|
||||
*/
|
||||
public function testTitleWithNumber( $input, $expectedOutput ) {
|
||||
$config = new LinkTitles\Config();
|
||||
$config->wordStartOnly = true;
|
||||
$config->wordEndOnly = true;
|
||||
$this->insertPage( 'numbered-1', 'This page serves as a link target with a numbered title' );
|
||||
$this->insertPage( 'numbered-101', 'This page serves as a link target with a numbered title' );
|
||||
parent::addDBDataOnce(); // call parent after adding page to have targets invalidated
|
||||
$source = LinkTitles\Source::createFromTitleAndText( $this->title, $input, $config );
|
||||
$linker = new LinkTitles\Linker( $config );
|
||||
$result = $linker->linkContent( $source );
|
||||
if ( !$result ) { $result = $input; }
|
||||
$this->assertSame( $expectedOutput, $result );
|
||||
}
|
||||
|
||||
public function provideTestTitleWithNumberData() {
|
||||
return [
|
||||
[
|
||||
"Page text with numbered-1 in it.",
|
||||
"Page text with [[numbered-1]] in it.",
|
||||
],
|
||||
[
|
||||
"Page text with numbered-101 in it.",
|
||||
"Page text with [[numbered-101]] in it.",
|
||||
],
|
||||
[
|
||||
"Page text with numbered-1010 in it.",
|
||||
"Page text with numbered-1010 in it.",
|
||||
],
|
||||
[
|
||||
"Page text with link target1 in it.",
|
||||
"Page text with link target1 in it.",
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideLinkContentTemplatesData
|
||||
*/
|
||||
|
@ -37,7 +37,7 @@ class TargetTest extends MediaWikiTestCase {
|
||||
|
||||
public static function provideStartOnly() {
|
||||
return [
|
||||
[ true, '(?<!\pL)' ],
|
||||
[ true, '(?<!\pL|\pN)' ],
|
||||
[ false, '' ]
|
||||
];
|
||||
}
|
||||
@ -54,7 +54,7 @@ class TargetTest extends MediaWikiTestCase {
|
||||
|
||||
public static function provideEndOnly() {
|
||||
return [
|
||||
[ true, '(?!\pL)' ],
|
||||
[ true, '(?!\pL|\pN)' ],
|
||||
[ false, '' ]
|
||||
];
|
||||
}
|
||||
|
Reference in New Issue
Block a user