session: Add debug message for the used store class
[lhc/web/wiklou.git] / tests / phpunit / includes / session / PHPSessionHandlerTest.php
index b001eb9..fdaa336 100644 (file)
@@ -15,15 +15,6 @@ class PHPSessionHandlerTest extends MediaWikiTestCase {
        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( '/headers 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() ) {
@@ -80,7 +71,10 @@ class PHPSessionHandlerTest extends MediaWikiTestCase {
                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,
@@ -156,6 +150,7 @@ class PHPSessionHandlerTest extends MediaWikiTestCase {
                $expect = [ 'AuthenticationSessionTest' => $rand ];
                session_write_close();
                $this->assertSame( [
+                       [ LogLevel::DEBUG, 'SessionManager using store MediaWiki\Session\TestBagOStuff' ],
                        [ LogLevel::WARNING, 'Something wrote to $_SESSION!' ],
                ], $logger->getBuffer() );