createNoOpMock( Language::class ); $mw = new MagicWord( null, [], true, $contLang ); // Stub out a MagicWordFactory so the Parser can initialize its // function hooks when it is created. $mwFactory = $this->createNoOpMock( MagicWordFactory::class, [ 'get', 'getVariableIDs', 'getSubstArray', 'newArray' ] ); $mwFactory->method( 'get' )->willReturn( $mw ); $mwFactory->method( 'getVariableIDs' )->willReturn( [] ); $urlUtils = $this->createNoOpMock( UrlUtils::class, [ 'validProtocols' ] ); $urlUtils->method( 'validProtocols' )->willReturn( '' ); $factory = new ParserFactory( $options, $mwFactory, $contLang, $urlUtils, $this->createNoOpMock( SpecialPageFactory::class ), $this->createNoOpMock( LinkRendererFactory::class ), $this->createNoOpMock( NamespaceInfo::class ), new TestLogger(), $this->createNoOpMock( BadFileLookup::class ), $this->createNoOpMock( LanguageConverterFactory::class, [ 'isConversionDisabled' ] ), $this->createNoOpMock( LanguageNameUtils::class ), $this->createHookContainer(), $this->createNoOpMock( TidyDriverBase::class ), $this->createNoOpMock( WANObjectCache::class ), $this->createNoOpMock( UserOptionsLookup::class ), $this->createNoOpMock( UserFactory::class ), $this->createNoOpMock( TitleFormatter::class ), $this->createNoOpMock( HttpRequestFactory::class ), $this->createNoOpMock( TrackingCategories::class ), $this->createNoOpMock( SignatureValidatorFactory::class ), $this->createNoOpMock( UserNameUtils::class ) ); return $factory; } public function testCreate() { $factory = $this->createFactory(); $parser = $factory->create(); $parserWrapper = TestingAccessWrapper::newFromObject( $parser ); $factoryWrapper = TestingAccessWrapper::newFromObject( $factory ); $this->assertSame( $factoryWrapper->languageConverterFactory, $parserWrapper->languageConverterFactory ); $this->assertSame( $factory, $parserWrapper->factory ); } }