setMwGlobals( 'wgMaxSigChars', 2 ); $user = $this->createMock( User::class ); $user->expects( $this->any() ) ->method( 'isAnon' ) ->will( $this->returnValue( false ) ); # Yeah foreach requires an array, not NULL =( $user->expects( $this->any() ) ->method( 'getEffectiveGroups' ) ->will( $this->returnValue( [] ) ); # The mocked user has a long nickname $user->expects( $this->any() ) ->method( 'getOption' ) ->will( $this->returnValueMap( [ [ 'nickname', null, false, 'superlongnickname' ], ] ) ); # Forge a request to call the special page $context = new RequestContext(); $context->setRequest( new FauxRequest() ); $context->setUser( $user ); $context->setTitle( Title::newFromText( 'Test' ) ); # Do the call, should not spurt a fatal error. $special = new SpecialPreferences(); $special->setContext( $context ); $this->assertNull( $special->execute( [] ) ); } }