` parse clears the original parser state. * @see https://phabricator.wikimedia.org/T240248 */ public function testReferenceStackError() { $this->insertPage( 'Cite-tracking-category-cite-error', '{{PAGENAME}}', NS_MEDIAWIKI ); $services = $this->getServiceContainer(); // Reset the MessageCache in order to force it to clone a new parser. $services->resetServiceForTesting( 'MessageCache' ); $services->getMessageCache()->enable(); $parserOutput = $services->getParser()->parse( ' text #1 text #2 text #3 ', Title::makeTitle( NS_MAIN, mt_rand() ), ParserOptions::newFromAnon() ); $this->assertStringContainsString( 'cite_ref-2', $parserOutput->getRawText(), 'Internal counter should not reset to 1 for text #3' ); } }