*/
ObjectCache::$instances[CACHE_DB] = new HashBagOStuff;
+ // Sandbox APC by replacing with in-process hash instead.
+ // Ensures values are removed between tests.
+ ObjectCache::$instances['apc'] =
+ ObjectCache::$instances['xcache'] =
+ ObjectCache::$instances['wincache'] = new HashBagOStuff;
+
$needsResetDB = false;
if ( $this->needsDB() ) {
DeferredUpdates::clearPendingUpdates();
+ ob_start( 'MediaWikiTestCase::wfResetOutputBuffersBarrier' );
}
protected function addTmpFiles( $files ) {
}
protected function tearDown() {
+ $status = ob_get_status();
+ if ( isset( $status['name'] ) &&
+ $status['name'] === 'MediaWikiTestCase::wfResetOutputBuffersBarrier'
+ ) {
+ ob_end_flush();
+ }
+
$this->called['tearDown'] = true;
// Cleaning up temporary files
foreach ( $this->tmpFiles as $fileName ) {
// of tidy. In that case however, we can not reliably detect whether a failing validation
// is due to malformed HTML, or caused by tidy not being installed as a command line tool.
// That would cause all HTML assertions to fail on a system that has no tidy installed.
- if ( !$GLOBALS['wgTidyInternal'] ) {
+ if ( !$GLOBALS['wgTidyInternal'] || !MWTidy::isEnabled() ) {
$this->markTestSkipped( 'Tidy extension not installed' );
}
/**
* Note: we are overriding this method to remove the deprecated error
- * @see https://bugzilla.wikimedia.org/show_bug.cgi?id=69505
+ * @see https://phabricator.wikimedia.org/T71505
* @see https://github.com/sebastianbergmann/phpunit/issues/1292
* @deprecated
*
* @param bool $isHtml
*/
public static function assertTag( $matcher, $actual, $message = '', $isHtml = true ) {
- //trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);
+ // trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);
self::assertTrue( self::tagMatch( $matcher, $actual, $isHtml ), $message );
}
* @param bool $isHtml
*/
public static function assertNotTag( $matcher, $actual, $message = '', $isHtml = true ) {
- //trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);
+ // trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);
self::assertFalse( self::tagMatch( $matcher, $actual, $isHtml ), $message );
}
+
+ /**
+ * Used as a marker to prevent wfResetOutputBuffers from breaking PHPUnit.
+ * @return string
+ */
+ public static function wfResetOutputBuffersBarrier( $buffer ) {
+ return $buffer;
+ }
}