Recovered parser test whose content got broken in r12975, functionality broken in r14635.
Changed what used to be EXT_LINK_TEXT_CLASS to define( 'EXT_LINK_TEXT_CLASS', '[^\]\\x00-\\x08\\x0a-\\x1F]' ); In plain English, do not allow control characters in description. We still allow tabs there, since they may arrive from a paste. We should probably make the space between the text and the description mandatory, it needs testing. These tests only work with the Hash Preprocessor, since the DOM Preprocessor changes them into the replacement character. Should we autolink an URL with a FFFD? That will require changing some regex into unicode ones.
This commit is contained in:
parent
7ece26fd50
commit
73649741ed
5 changed files with 6 additions and 16 deletions
|
|
@ -4015,6 +4015,7 @@ $wgAPICacheHelpTimeout = 60*60;
|
|||
*/
|
||||
$wgParserTestFiles = array(
|
||||
"$IP/maintenance/parserTests.txt",
|
||||
"$IP/maintenance/ExtraParserTests.txt"
|
||||
);
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ class Parser {
|
|||
$this->mDefaultStripList = $this->mStripList = array();
|
||||
$this->mUrlProtocols = wfUrlProtocols();
|
||||
$this->mExtLinkBracketedRegex = '/\[(\b(' . wfUrlProtocols() . ')'.
|
||||
'[^][<>"\\x00-\\x20\\x7F]+) *([^\]\\x0a\\x0d]*?)\]/S';
|
||||
'[^][<>"\\x00-\\x20\\x7F]+) *([^\]\\x00-\\x08\\x0a-\\x1F]*?)\]/S';
|
||||
$this->mVarCache = array();
|
||||
if ( isset( $conf['preprocessorClass'] ) ) {
|
||||
$this->mPreprocessorClass = $conf['preprocessorClass'];
|
||||
|
|
|
|||
BIN
maintenance/ExtraParserTests.txt
Normal file
BIN
maintenance/ExtraParserTests.txt
Normal file
Binary file not shown.
|
|
@ -304,10 +304,10 @@ class ParserTest {
|
|||
/**
|
||||
* Get a Parser object
|
||||
*/
|
||||
function getParser() {
|
||||
function getParser($preprocessor = null) {
|
||||
global $wgParserConf;
|
||||
$class = $wgParserConf['class'];
|
||||
$parser = new $class( $wgParserConf );
|
||||
$parser = new $class( array( 'preprocessorClass'=>$preprocessor ) + $wgParserConf );
|
||||
foreach( $this->hooks as $tag => $callback ) {
|
||||
$parser->setHook( $tag, $callback );
|
||||
}
|
||||
|
|
@ -352,7 +352,8 @@ class ParserTest {
|
|||
|
||||
$noxml = isset( $opts['noxml'] );
|
||||
$local = isset( $opts['local'] );
|
||||
$parser = $this->getParser();
|
||||
$preprocessor = @$opts['preprocessor'];
|
||||
$parser = $this->getParser( $preprocessor );
|
||||
$title = Title::newFromText( $titleText );
|
||||
|
||||
$matches = array();
|
||||
|
|
|
|||
|
|
@ -864,18 +864,6 @@ BUG 289: literal double quote in bracketed URL
|
|||
</p>
|
||||
!!end
|
||||
|
||||
!! test
|
||||
External links: invalid character
|
||||
Fixme: the missing char seems to have gone missing
|
||||
!! options
|
||||
disabled
|
||||
!! input
|
||||
[http://www.example.com test]
|
||||
!! result
|
||||
<p>[<a href="http://www.example.com" class="external free" rel="nofollow">http://www.example.com</a> test]
|
||||
</p>
|
||||
!! end
|
||||
|
||||
!! test
|
||||
External links: multiple legal whitespace is fine, Magnus. Don't break it please. (bug 5081)
|
||||
!! input
|
||||
|
|
|
|||
Loading…
Reference in a new issue