test: helper to skip tests depending on a PHP ext
authorAntoine Musso <hashar@free.fr>
Mon, 28 Jan 2013 09:27:31 +0000 (10:27 +0100)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 28 Jan 2013 11:18:04 +0000 (11:18 +0000)
Some of our tests expect a specific PHP extension to be loaded to get
anything done, for example zlib or gd.  This patch creates a new helping
method that people can use to easily skip a test whenever a PHP
extension is not around: MediaWikiTestCase::checkPHPExtension()

Example usage:

 function testCompressFiles() {
   $this->checkPHPExtension( 'zlib' );
   ...
 }

Change-Id: Ia87317ca379b2d5d1d1fa4231f76033ee66086c2

tests/phpunit/MediaWikiTestCase.php

index cbf9a8e..61b3119 100644 (file)
@@ -862,6 +862,20 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                }
        }
 
+       /**
+        * Check if $extName is a loaded PHP extension, will skip the
+        * test whenever it is not loaded.
+        *
+        * @since 1.21
+        */
+       protected function checkPHPExtension( $extName ) {
+               $loaded = extension_loaded( $extName );
+               if( ! $loaded ) {
+                       $this->markTestSkipped( "PHP extension '$extName' is not loaded, skipping." );
+               }
+               return $loaded;
+       }
+
        /**
         * Asserts that an exception of the specified type occurs when running
         * the provided code.