Recovered parser test whose content got broken in r12975, functionality broken in...
authorPlatonides <platonides@users.mediawiki.org>
Wed, 5 May 2010 21:58:39 +0000 (21:58 +0000)
committerPlatonides <platonides@users.mediawiki.org>
Wed, 5 May 2010 21:58:39 +0000 (21:58 +0000)
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.

includes/DefaultSettings.php
includes/parser/Parser.php
maintenance/ExtraParserTests.txt [new file with mode: 0644]
maintenance/parserTests.inc
maintenance/parserTests.txt

index 48254f6..8ea4d3d 100644 (file)
@@ -4015,6 +4015,7 @@ $wgAPICacheHelpTimeout = 60*60;
  */
 $wgParserTestFiles = array(
        "$IP/maintenance/parserTests.txt",
+       "$IP/maintenance/ExtraParserTests.txt"
 );
 
 /**
index 8a59b65..7032b86 100644 (file)
@@ -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'];
diff --git a/maintenance/ExtraParserTests.txt b/maintenance/ExtraParserTests.txt
new file mode 100644 (file)
index 0000000..66b8032
Binary files /dev/null and b/maintenance/ExtraParserTests.txt differ
index 0a3522f..2990944 100644 (file)
@@ -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();
index c40e709..ade29b7 100644 (file)
@@ -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