private function getResetter( &$rProp = null ) {
$reset = [];
- // Ignore "headers already sent" warnings during this test
- set_error_handler( function ( $errno, $errstr ) use ( &$warnings ) {
- if ( preg_match( '/[hH]eaders already sent/', $errstr ) ) {
- return true;
- }
- return false;
- } );
- $reset[] = new \Wikimedia\ScopedCallback( 'restore_error_handler' );
-
$rProp = new \ReflectionProperty( PHPSessionHandler::class, 'instance' );
$rProp->setAccessible( true );
if ( $rProp->getValue() ) {
ini_set( 'session.use_trans_sid', 1 );
$store = new TestBagOStuff();
- $logger = new \TestLogger();
+ // Tolerate debug message, anything else is unexpected
+ $logger = new \TestLogger( false, function ( $m ) {
+ return preg_match( '/^SessionManager using store/', $m ) ? null : $m;
+ } );
$manager = new SessionManager( [
'store' => $store,
'logger' => $logger,
$expect = [ 'AuthenticationSessionTest' => $rand ];
session_write_close();
$this->assertSame( [
+ [ LogLevel::DEBUG, 'SessionManager using store MediaWiki\Session\TestBagOStuff' ],
[ LogLevel::WARNING, 'Something wrote to $_SESSION!' ],
], $logger->getBuffer() );