<?php use MediaWiki\Extension\Math\InputCheck\RestbaseChecker; use MediaWiki\Extension\Math\Tests\MathMockHttpTrait; use MediaWiki\Message\Message; /** * @group Math * * @license GPL-2.0-or-later * * @covers \MediaWiki\Extension\Math\InputCheck\RestbaseChecker */ class RestbaseCheckerTest extends MediaWikiIntegrationTestCase { use MathMockHttpTrait; public function testValid() { $this->setupGoodMathRestBaseMockHttp(); $checker = new RestbaseChecker( '\sin x^2' ); $this->assertNull( $checker->getError() ); $this->assertTrue( $checker->isValid() ); $this->assertNull( $checker->getError() ); $this->assertSame( '\\sin x^{2}', $checker->getValidTex() ); } public function testInvalid() { $this->setupBadMathRestBaseMockHttp(); $checker = new RestbaseChecker( '\sin\newcommand' ); $this->assertNull( $checker->getError() ); $this->assertFalse( $checker->isValid() ); $this->assertStringContainsString( Message::newFromKey( 'math_unknown_function', '\newcommand' ) ->inContentLanguage() ->escaped(), $checker->getError() ->inContentLanguage() ->escaped() ); $this->assertNull( $checker->getValidTex() ); } public function testErrorSyntax() { $this->setupSyntaxErrorRestBaseMockHttp(); $checker = new RestbaseChecker( '\left(' ); $this->assertFalse( $checker->isValid() ); $this->assertStringContainsString( Message::newFromKey( 'math_syntax_error' ) ->inContentLanguage() ->escaped(), $checker->getError() ->inContentLanguage() ->escaped() ); } }