} else {
$this->recorder = new TestRecorder( $this->term );
}
+ $this->keepUploads = isset( $options['keep-uploads'] );
$this->hooks = array();
$this->functionHooks = array();
$noxml = (bool)preg_match( '~\\b noxml \\b~x', $opts );
- $parser = new Parser();
+ $parser = new Parser;
foreach( $this->hooks as $tag => $callback ) {
$parser->setHook( $tag, $callback );
}
$out = $parser->preSaveTransform( $input, $title, $user, $options );
} elseif (preg_match('/\\bmsg\\b/i', $opts)) {
$out = $parser->transformMsg( $input, $options );
- } elseif( preg_match( '/\\bsection=(\d+)\b/i', $opts, $matches ) ) {
- $section = intval( $matches[1] );
+ } elseif( preg_match( '/\\bsection=([\w-]+)\b/i', $opts, $matches ) ) {
+ $section = $matches[1];
$out = $parser->getSection( $input, $section );
- } elseif( preg_match( '/\\breplace=(\d+),"(.*?)"/i', $opts, $matches ) ) {
- $section = intval( $matches[1] );
+ } elseif( preg_match( '/\\breplace=([\w-]+),"(.*?)"/i', $opts, $matches ) ) {
+ $section = $matches[1];
$replace = $matches[2];
$out = $parser->replaceSection( $input, $section, $replace );
} else {
*/
private function setupUploadDir() {
global $IP;
- $dir = wfTempDir() . "/mwParser-" . mt_rand() . "-images";
+ if ( $this->keepUploads ) {
+ $dir = wfTempDir() . '/mwParser-images';
+ if ( is_dir( $dir ) ) {
+ return $dir;
+ }
+ } else {
+ $dir = wfTempDir() . "/mwParser-" . mt_rand() . "-images";
+ }
+
wfDebug( "Creating upload directory $dir\n" );
mkdir( $dir );
mkdir( $dir . '/3' );
* Remove the dummy uploads directory
*/
private function teardownUploadDir( $dir ) {
+ if ( $this->keepUploads ) {
+ return;
+ }
+
// delete the files first, then the dirs.
self::deleteFiles(
array (