createMock( IDatabase::class ); $db->method( 'selectRow' )->willReturn( false ); $lbFactory = $this->createMock( LBFactory::class ); $lbFactory->method( 'getReplicaDatabase' )->willReturn( $db ); $this->setService( 'DBLoadBalancerFactory', $lbFactory ); $this->overrideConfigValue( 'MathValidModes', [ 'native' ] ); $this->clearHooks(); } public function testSin() { $mml = new MathNativeMML( '\sin' ); $this->assertSame( 'tex', $mml->getInputType() ); $this->assertTrue( $mml->checkTeX() ); $this->assertTrue( $mml->render() ); $this->assertStringContainsString( 'sin', $mml->getMathml() ); } public function testNoLink() { $this->overrideConfigValue( 'MathEnableFormulaLinks', false ); $mml = new MathNativeMML( '\sin', [ 'qid' => 'Q1' ] ); $this->assertTrue( $mml->render() ); $this->assertStringNotContainsString( 'href', $mml->getMathml() ); } public function testLink() { $this->overrideConfigValue( 'MathEnableFormulaLinks', true ); $mml = new MathNativeMML( '\sin', [ 'qid' => 'Q1' ] ); $this->assertTrue( $mml->render() ); $this->assertStringContainsString( 'href', $mml->getMathml() ); } public function testId() { $mml = new MathNativeMML( '\sin', [ 'id' => 'unique-id' ] ); $this->assertTrue( $mml->render() ); $this->assertStringContainsString( 'unique-id', $mml->getMathml() ); } public function testBlock() { $mml = new MathNativeMML( '\sin', [ 'display' => 'block' ] ); $this->assertTrue( $mml->render() ); $this->assertStringContainsString( 'block', $mml->getMathml() ); } }