Merge "Tests for API section editing"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 9 Oct 2013 18:14:09 +0000 (18:14 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 9 Oct 2013 18:14:09 +0000 (18:14 +0000)
19 files changed:
includes/DefaultSettings.php
includes/GlobalFunctions.php
includes/MimeMagic.php
includes/db/DatabaseMysql.php
includes/diff/DifferenceEngine.php
includes/installer/DatabaseInstaller.php
maintenance/backup.inc
maintenance/cleanupTable.inc
maintenance/cleanupTitles.php
maintenance/sqlite.inc
tests/phpunit/includes/CollationTest.php
tests/phpunit/includes/media/BitmapMetadataHandlerTest.php
tests/phpunit/includes/media/ExifBitmapTest.php
tests/phpunit/includes/media/ExifRotationTest.php
tests/phpunit/includes/media/ExifTest.php
tests/phpunit/includes/media/FormatMetadataTest.php
tests/phpunit/includes/media/JpegTest.php
tests/phpunit/includes/media/TiffTest.php
tests/phpunit/includes/media/XMPTest.php

index 98c583b..21cd1ff 100644 (file)
@@ -1125,13 +1125,6 @@ $wgMimeTypeFile = 'includes/mime.types';
  */
 $wgMimeInfoFile = 'includes/mime.info';
 
-/**
- * Switch for loading the FileInfo extension by PECL at runtime.
- * This should be used only if fileinfo is installed as a shared object
- * or a dynamic library.
- */
-$wgLoadFileinfoExtension = false;
-
 /**
  * Sets an external mime detector program. The command must print only
  * the mime type to standard output.
index b11bce9..8241d81 100644 (file)
@@ -2634,38 +2634,6 @@ function wfIniGetBool( $setting ) {
                || preg_match( "/^\s*[+-]?0*[1-9]/", $val ); // approx C atoi() function
 }
 
-/**
- * Wrapper function for PHP's dl(). This doesn't work in most situations from
- * PHP 5.3 onward, and is usually disabled in shared environments anyway.
- *
- * @param string $extension A PHP extension. The file suffix (.so or .dll)
- *                          should be omitted
- * @param string $fileName Name of the library, if not $extension.suffix
- * @return Bool - Whether or not the extension is loaded
- */
-function wfDl( $extension, $fileName = null ) {
-       if ( extension_loaded( $extension ) ) {
-               return true;
-       }
-
-       $canDl = false;
-       if ( PHP_SAPI == 'cli' || PHP_SAPI == 'cgi' || PHP_SAPI == 'embed' ) {
-               $canDl = ( function_exists( 'dl' ) && is_callable( 'dl' )
-               && wfIniGetBool( 'enable_dl' ) && !wfIniGetBool( 'safe_mode' ) );
-       }
-
-       if ( $canDl ) {
-               $fileName = $fileName ? $fileName : $extension;
-               if ( wfIsWindows() ) {
-                       $fileName = 'php_' . $fileName;
-               }
-               wfSuppressWarnings();
-               dl( $fileName . '.' . PHP_SHLIB_SUFFIX );
-               wfRestoreWarnings();
-       }
-       return extension_loaded( $extension );
-}
-
 /**
  * Windows-compatible version of escapeshellarg()
  * Windows doesn't recognise single-quotes in the shell, but the escapeshellarg()
index 44fafca..8220e92 100644 (file)
@@ -169,10 +169,6 @@ class MimeMagic {
         */
        private static $instance;
 
-       /** True if the fileinfo extension has been loaded
-        */
-       private static $extensionLoaded = false;
-
        /** Initializes the MimeMagic object. This is called by MimeMagic::singleton().
         *
         * This constructor parses the mime.types and mime.info files and build internal mappings.
@@ -182,7 +178,7 @@ class MimeMagic {
                 *   --- load mime.types ---
                 */
 
-               global $wgMimeTypeFile, $IP, $wgLoadFileinfoExtension;
+               global $wgMimeTypeFile, $IP;
 
                $types = MM_WELL_KNOWN_MIME_TYPES;
 
@@ -190,11 +186,6 @@ class MimeMagic {
                        $wgMimeTypeFile = "$IP/$wgMimeTypeFile";
                }
 
-               if ( $wgLoadFileinfoExtension && !self::$extensionLoaded ) {
-                       self::$extensionLoaded = true;
-                       wfDl( 'fileinfo' );
-               }
-
                if ( $wgMimeTypeFile ) {
                        if ( is_file( $wgMimeTypeFile ) and is_readable( $wgMimeTypeFile ) ) {
                                wfDebug( __METHOD__ . ": loading mime types from $wgMimeTypeFile\n" );
index b75d615..956bb69 100644 (file)
@@ -43,12 +43,9 @@ class DatabaseMysql extends DatabaseMysqlBase {
        }
 
        protected function mysqlConnect( $realServer ) {
-               # Load mysql.so if we don't have it
-               wfDl( 'mysql' );
-
                # Fail now
                # Otherwise we get a suppressed fatal error, which is very hard to track down
-               if ( !function_exists( 'mysql_connect' ) ) {
+               if ( !extension_loaded( 'mysql' ) ) {
                        throw new DBConnectionError( $this, "MySQL functions missing, have you compiled PHP with the --with-mysql option?\n" );
                }
 
index 0c9086b..e436f58 100644 (file)
@@ -695,24 +695,6 @@ class DifferenceEngine extends ContextSource {
                return $difftext;
        }
 
-       /**
-        * Make sure the proper modules are loaded before we try to
-        * make the diff
-        */
-       private function initDiffEngines() {
-               global $wgExternalDiffEngine;
-               if ( $wgExternalDiffEngine == 'wikidiff' && !function_exists( 'wikidiff_do_diff' ) ) {
-                       wfProfileIn( __METHOD__ . '-php_wikidiff.so' );
-                       wfDl( 'php_wikidiff' );
-                       wfProfileOut( __METHOD__ . '-php_wikidiff.so' );
-               }
-               elseif ( $wgExternalDiffEngine == 'wikidiff2' && !function_exists( 'wikidiff2_do_diff' ) ) {
-                       wfProfileIn( __METHOD__ . '-php_wikidiff2.so' );
-                       wfDl( 'wikidiff2' );
-                       wfProfileOut( __METHOD__ . '-php_wikidiff2.so' );
-               }
-       }
-
        /**
         * Generate a diff, no caching.
         *
@@ -779,8 +761,6 @@ class DifferenceEngine extends ContextSource {
                $otext = str_replace( "\r\n", "\n", $otext );
                $ntext = str_replace( "\r\n", "\n", $ntext );
 
-               $this->initDiffEngines();
-
                if ( $wgExternalDiffEngine == 'wikidiff' && function_exists( 'wikidiff_do_diff' ) ) {
                        # For historical reasons, external diff engine expects
                        # input text to be HTML-escaped already
index 3739bb5..8bb7826 100644 (file)
@@ -321,16 +321,11 @@ abstract class DatabaseInstaller {
         * Convenience function.
         * Check if a named extension is present.
         *
-        * @see wfDl
         * @param $name
         * @return bool
         */
        protected static function checkExtension( $name ) {
-               wfSuppressWarnings();
-               $compiled = wfDl( $name );
-               wfRestoreWarnings();
-
-               return $compiled;
+               return extension_loaded( $name );
        }
 
        /**
index db045cf..3dc94c8 100644 (file)
@@ -170,11 +170,8 @@ class BackupDumper {
                                        break;
                                case "force-normal":
                                        if ( !function_exists( 'utf8_normalize' ) ) {
-                                               wfDl( "php_utfnormal.so" );
-                                               if ( !function_exists( 'utf8_normalize' ) ) {
-                                                       $this->fatalError( "Failed to load UTF-8 normalization extension. " .
-                                                               "Install or remove --force-normal parameter to use slower code." );
-                                               }
+                                               $this->fatalError( "UTF-8 normalization extension not loaded. " .
+                                                       "Install or remove --force-normal parameter to use slower code." );
                                        }
                                        break;
                                default:
index 48bb53e..cbd1be6 100644 (file)
@@ -109,8 +109,8 @@ class TableCleanup extends Maintenance {
                $dbr = wfGetDB( DB_SLAVE );
 
                if ( array_diff( array_keys( $params ),
-                       array( 'table', 'conds', 'index', 'callback' ) ) )
-               {
+                       array( 'table', 'conds', 'index', 'callback' ) )
+               {
                        throw new MWException( __METHOD__ . ': Missing parameter ' . implode( ', ', $params ) );
                }
 
@@ -120,7 +120,6 @@ class TableCleanup extends Maintenance {
                $this->init( $count, $table );
                $this->output( "Processing $table...\n" );
 
-
                $index = (array)$params['index'];
                $indexConds = array();
                $options = array(
index ae256ab..5b5ef18 100644 (file)
@@ -54,9 +54,10 @@ class TitleCleanup extends TableCleanup {
                if ( !is_null( $title )
                        && $title->canExist()
                        && $title->getNamespace() == $row->page_namespace
-                       && $title->getDBkey() === $row->page_title )
-               {
-                       $this->progress( 0 );  // all is fine
+                       && $title->getDBkey() === $row->page_title
+               ) {
+                       $this->progress( 0 ); // all is fine
+
                        return;
                }
 
@@ -83,6 +84,7 @@ class TitleCleanup extends TableCleanup {
                // This is reasonable, since cleanupImages.php only iterates over the image table.
                $dbr = wfGetDB( DB_SLAVE );
                $row = $dbr->selectRow( 'image', array( 'img_name' ), array( 'img_name' => $name ), __METHOD__ );
+
                return $row !== false;
        }
 
@@ -115,9 +117,11 @@ class TitleCleanup extends TableCleanup {
 
                $dest = $title->getDBkey();
                if ( $this->dryrun ) {
-                       $this->output( "DRY RUN: would rename $row->page_id ($row->page_namespace,'$row->page_title') to ($row->page_namespace,'$dest')\n" );
+                       $this->output( "DRY RUN: would rename $row->page_id ($row->page_namespace," .
+                               "'$row->page_title') to ($row->page_namespace,'$dest')\n" );
                } else {
-                       $this->output( "renaming $row->page_id ($row->page_namespace,'$row->page_title') to ($row->page_namespace,'$dest')\n" );
+                       $this->output( "renaming $row->page_id ($row->page_namespace," .
+                               "'$row->page_title') to ($row->page_namespace,'$dest')\n" );
                        $dbw = wfGetDB( DB_MASTER );
                        $dbw->update( 'page',
                                array( 'page_title' => $dest ),
@@ -160,9 +164,11 @@ class TitleCleanup extends TableCleanup {
                $dest = $title->getDBkey();
 
                if ( $this->dryrun ) {
-                       $this->output( "DRY RUN: would rename $row->page_id ($row->page_namespace,'$row->page_title') to ($ns,'$dest')\n" );
+                       $this->output( "DRY RUN: would rename $row->page_id ($row->page_namespace," .
+                               "'$row->page_title') to ($ns,'$dest')\n" );
                } else {
-                       $this->output( "renaming $row->page_id ($row->page_namespace,'$row->page_title') to ($ns,'$dest')\n" );
+                       $this->output( "renaming $row->page_id ($row->page_namespace," .
+                               "'$row->page_title') to ($ns,'$dest')\n" );
                        $dbw = wfGetDB( DB_MASTER );
                        $dbw->update( 'page',
                                array(
index 49f4e00..08188ca 100644 (file)
@@ -33,10 +33,7 @@ class Sqlite {
         * @return bool
         */
        public static function isPresent() {
-               wfSuppressWarnings();
-               $compiled = wfDl( 'pdo_sqlite' );
-               wfRestoreWarnings();
-               return $compiled;
+               return extension_loaded( 'pdo_sqlite' );
        }
 
        /**
index ae35fd7..f1004fb 100644 (file)
@@ -2,7 +2,7 @@
 class CollationTest extends MediaWikiLangTestCase {
        protected function setUp() {
                parent::setUp();
-               if ( !wfDl( 'intl' ) ) {
+               if ( !extension_loaded( 'intl' ) ) {
                        $this->markTestSkipped( 'These tests require intl extension' );
                }
        }
index ffa6084..43792c1 100644 (file)
@@ -18,10 +18,10 @@ class BitmapMetadataHandlerTest extends MediaWikiTestCase {
         * translation (to en) where XMP should win.
         */
        public function testMultilingualCascade() {
-               if ( !wfDl( 'exif' ) ) {
+               if ( !extension_loaded( 'exif' ) ) {
                        $this->markTestSkipped( "This test needs the exif extension." );
                }
-               if ( !wfDl( 'xml' ) ) {
+               if ( !extension_loaded( 'xml' ) ) {
                        $this->markTestSkipped( "This test needs the xml extension." );
                }
 
@@ -115,7 +115,7 @@ class BitmapMetadataHandlerTest extends MediaWikiTestCase {
        }
 
        public function testPNGXMP() {
-               if ( !wfDl( 'xml' ) ) {
+               if ( !extension_loaded( 'xml' ) ) {
                        $this->markTestSkipped( "This test needs the xml extension." );
                }
                $handler = new BitmapMetadataHandler();
index 1109c47..532182c 100644 (file)
@@ -4,13 +4,14 @@ class ExifBitmapTest extends MediaWikiTestCase {
 
        protected function setUp() {
                parent::setUp();
+               if ( !extension_loaded( 'exif' ) ) {
+                       $this->markTestSkipped( "This test needs the exif extension." );
+               }
 
                $this->setMwGlobals( 'wgShowEXIF', true );
 
                $this->handler = new ExifBitmapHandler;
-               if ( !wfDl( 'exif' ) ) {
-                       $this->markTestSkipped( "This test needs the exif extension." );
-               }
+
        }
 
        public function testIsOldBroken() {
index f02e8b9..c16de8b 100644 (file)
@@ -8,6 +8,10 @@ class ExifRotationTest extends MediaWikiTestCase {
 
        protected function setUp() {
                parent::setUp();
+               if ( !extension_loaded( 'exif' ) ) {
+                       $this->markTestSkipped( "This test needs the exif extension." );
+               }
+
                $this->handler = new BitmapHandler();
                $filePath = __DIR__ . '/../../data/media';
 
@@ -22,9 +26,6 @@ class ExifRotationTest extends MediaWikiTestCase {
                                'containerPaths' => array( 'temp-thumb' => $tmpDir, 'data' => $filePath )
                        ) )
                ) );
-               if ( !wfDl( 'exif' ) ) {
-                       $this->markTestSkipped( "This test needs the exif extension." );
-               }
 
                $this->setMwGlobals( array(
                        'wgShowEXIF' => true,
index 6ad28ac..b84ed56 100644 (file)
@@ -3,12 +3,13 @@ class ExifTest extends MediaWikiTestCase {
 
        protected function setUp() {
                parent::setUp();
+               if ( !extension_loaded( 'exif' ) ) {
+                       $this->markTestSkipped( "This test needs the exif extension." );
+               }
 
                $this->mediaPath = __DIR__ . '/../../data/media/';
 
-               if ( !wfDl( 'exif' ) ) {
-                       $this->markTestSkipped( "This test needs the exif extension." );
-               }
+
 
                $this->setMwGlobals( 'wgShowEXIF', true );
        }
index f26d27e..bee0906 100644 (file)
@@ -4,7 +4,7 @@ class FormatMetadataTest extends MediaWikiTestCase {
        protected function setUp() {
                parent::setUp();
 
-               if ( !wfDl( 'exif' ) ) {
+               if ( !extension_loaded( 'exif' ) ) {
                        $this->markTestSkipped( "This test needs the exif extension." );
                }
                $filePath = __DIR__ . '/../../data/media';
index 05d3661..7775c41 100644 (file)
@@ -3,12 +3,13 @@ class JpegTest extends MediaWikiTestCase {
 
        protected function setUp() {
                parent::setUp();
-
-               $this->filePath = __DIR__ . '/../../data/media/';
-               if ( !wfDl( 'exif' ) ) {
+               if ( !extension_loaded( 'exif' ) ) {
                        $this->markTestSkipped( "This test needs the exif extension." );
                }
 
+               $this->filePath = __DIR__ . '/../../data/media/';
+
+
                $this->setMwGlobals( 'wgShowEXIF', true );
        }
 
index 91c35c4..1ec34d5 100644 (file)
@@ -3,6 +3,9 @@ class TiffTest extends MediaWikiTestCase {
 
        protected function setUp() {
                parent::setUp();
+               if ( !extension_loaded( 'exif' ) ) {
+                       $this->markTestSkipped( "This test needs the exif extension." );
+               }
 
                $this->setMwGlobals( 'wgShowEXIF', true );
 
@@ -11,17 +14,11 @@ class TiffTest extends MediaWikiTestCase {
        }
 
        public function testInvalidFile() {
-               if ( !wfDl( 'exif' ) ) {
-                       $this->markTestIncomplete( "This test needs the exif extension." );
-               }
                $res = $this->handler->getMetadata( null, $this->filePath . 'README' );
                $this->assertEquals( ExifBitmapHandler::BROKEN_FILE, $res );
        }
 
        public function testTiffMetadataExtraction() {
-               if ( !wfDl( 'exif' ) ) {
-                       $this->markTestIncomplete( "This test needs the exif extension." );
-               }
                $res = $this->handler->getMetadata( null, $this->filePath . 'test.tiff' );
                $expected = 'a:16:{s:10:"ImageWidth";i:20;s:11:"ImageLength";i:20;s:13:"BitsPerSample";a:3:{i:0;i:8;i:1;i:8;i:2;i:8;}s:11:"Compression";i:5;s:25:"PhotometricInterpretation";i:2;s:16:"ImageDescription";s:17:"Created with GIMP";s:12:"StripOffsets";i:8;s:11:"Orientation";i:1;s:15:"SamplesPerPixel";i:3;s:12:"RowsPerStrip";i:64;s:15:"StripByteCounts";i:238;s:11:"XResolution";s:19:"1207959552/16777216";s:11:"YResolution";s:19:"1207959552/16777216";s:19:"PlanarConfiguration";i:1;s:14:"ResolutionUnit";i:2;s:22:"MEDIAWIKI_EXIF_VERSION";i:2;}';
                // Re-unserialize in case there are subtle differences between how versions
index 25a43eb..aa0cdd2 100644 (file)
@@ -3,7 +3,7 @@ class XMPTest extends MediaWikiTestCase {
 
        protected function setUp() {
                parent::setUp();
-               if ( !wfDl( 'xml' ) ) {
+               if ( !extension_loaded( 'xml' ) ) {
                        $this->markTestSkipped( 'Requires libxml to do XMP parsing' );
                }
        }