$this->backupStaticAttributes = false;
}
- function run( PHPUnit_Framework_TestResult $result = NULL ) {
+ function run( PHPUnit_Framework_TestResult $result = null ) {
/* Some functions require some kind of caching, and will end up using the db,
* which we can't allow, as that would open a new connection for mysql.
* Replace with a HashBag. They would not be going to persist anyway.
'page_id' => 0,
'page_namespace' => 0,
'page_title' => ' ',
- 'page_restrictions' => NULL,
+ 'page_restrictions' => null,
'page_counter' => 0,
'page_is_redirect' => 0,
'page_is_new' => 0,
return $this->assertTrue( $value == '', $msg );
}
- static private function unprefixTable( $tableName ) {
+ private static function unprefixTable( $tableName ) {
global $wgDBprefix;
return substr( $tableName, strlen( $wgDBprefix ) );
}
- static private function isNotUnittest( $table ) {
+ private static function isNotUnittest( $table ) {
return strpos( $table, 'unittest_' ) !== 0;
}
}
}
+ /**
+ * Check whether we have the 'gzip' commandline utility, will skip
+ * the test whenever "gzip -V" fails.
+ *
+ * Result is cached at the process level.
+ *
+ * @return bool
+ *
+ * @since 1.21
+ */
+ protected function checkHasGzip() {
+ static $haveGzip;
+
+ if( $haveGzip === null ) {
+ $retval = null;
+ wfShellExec( 'gzip -V', $retval );
+ $haveGzip = ($retval === 0);
+ }
+
+ if( !$haveGzip ) {
+ $this->markTestSkipped( "Skip test, requires the gzip utility in PATH" );
+ }
+
+ return $haveGzip;
+ }
+
+ /**
+ * 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.