mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Math
synced 2024-11-23 23:25:02 +00:00
dc12796ced
combine commits to avoid potential problems with gerrit and jenkins This is a combination of 30 commits. ve.ce.MWMathNode: Remove reference to defunct ve.bind Bug: 73627 Change-Id: I3dd6b520a24e5cecb272de8f9a4aa0ba231bee58 Localisation updates from https://translatewiki.net. Change-Id: I6074394864ee7c61b416ae146c94c75d48f509af Localisation updates from https://translatewiki.net. Change-Id: I2fa13da30e606e1dfb1e13ae64fb125bf4bfadf6 Fix Mathoid integration test A recent change in mathoid, i.e. I8d3cec0ee8a8c9368b7dca89e1d5e0c5683f946c removed the margins. This causes breaking unit tests. Change-Id: I312d6226c6f24c84254b99ee6292564a421133c3 Localisation updates from https://translatewiki.net. Change-Id: I053b90b6a583c411270c950ab6bc0d4e94db583f Localisation updates from https://translatewiki.net. Change-Id: Icc6d5d961ad97e19de3c4fbdb86e5aa9315998bb Localisation updates from https://translatewiki.net. Change-Id: I7b8faf72ba814154896cf5039e14d23f07509440 Localisation updates from https://translatewiki.net. Change-Id: I83ca4e6eb8eef02e98ddc6f556d113942fa436df Localisation updates from https://translatewiki.net. Change-Id: Icb25e8b51409754130ce22c47474f644c087124e Localisation updates from https://translatewiki.net. Change-Id: I6dae3f8fc6723265bf47b721148d261b11828f33 Fix for fatal caused by static call to MathRenderer::getError MathRenderer::getError() uses $this, so it should not be called statically. MathInputCheckTexvc should instead call its convertTexvcError method, which constructs a MathRenderer object so it can call its getError method. This code is pretty awful. But this way it won't throw fatal errors all the time. Change-Id: Ic438b307a3b464651363b4cc16698c7d4320b253 Add support for display and ID attributes to VisualEditor Change-Id: Ie65ff26c9e214f74b0217238a3def2242505d4c2 Localisation updates from https://translatewiki.net. Change-Id: I5f978989a57affa823632061300f5de7028b2ec0 Localisation updates from https://translatewiki.net. Change-Id: I366383149cb56c90800e06f94aaa6c8895d2381c Localisation updates from https://translatewiki.net. Change-Id: I204cb407cfb417961da361b4eaa84af432e2bd29 Localisation updates from https://translatewiki.net. Change-Id: Ib3f357a76752ce2cba8642a02ec4f5373ddabe52 Localisation updates from https://translatewiki.net. Change-Id: Iec289070ab64e2014b4c7f371926c03466258e3c Localisation updates from https://translatewiki.net. Change-Id: Id297a13ca02524d9db16990b6cdd282b0b52fd73 Localisation updates from https://translatewiki.net. Change-Id: I1b86d72690b5907ef438d69cf067da6dcc1891b2 Localisation updates from https://translatewiki.net. Change-Id: Ib4eb016b1602d94a73c5e355f0ae4a744083b0c3 Localisation updates from https://translatewiki.net. Change-Id: I6b0398be5ec8ba5bfc71c987f80973bf2bb8afe3 Localisation updates from https://translatewiki.net. Change-Id: Ie485a03f09f1534071d18abf64bbfa446cdee754 Localisation updates from https://translatewiki.net. Change-Id: I2445b8fbf1b35f437d6dba99d9fe081833ab5089 Localisation updates from https://translatewiki.net. Change-Id: If1f94c16fd20feef3403e326d58526eeb17c6a86 Localisation updates from https://translatewiki.net. Change-Id: I74dcb97bbb16bfc6e0700ed90fcf9705f7bdecf8 Localisation updates from https://translatewiki.net. Change-Id: I0ac3c68f796cde959629d63079d212473ad5a729 Localisation updates from https://translatewiki.net. Change-Id: I35f1687b4f4e7030a91bdc8aba3c04bbf71f55a4 Localisation updates from https://translatewiki.net. Change-Id: I64dfcdedea5ed345f730fe7080c8b511fe21dc49 Localisation updates from https://translatewiki.net. Change-Id: Ib5c89c89ba2091f7784cc1c1237150ec55741fd7 MWException -> Exception Change-Id: I18da1baeb70387b96e30811a049185a264dec26d Update MathParser tests In the most recent version of ubuntu14 the outputhash of the png images for some math objects has changed. However, the rendered images seem to look ok. Bug: T86309 Change-Id: I52dbdefdcfa19c10f1d9d1a43369aabe8bfd92bf Correct wrong variable name Change-Id: Iecfa0bfa5861e077d98f7bf06af0e98cda56220b Remove unused global Change-Id: I8f5f77015de266f5a5b751fd7cfe424784eb3864 Update LaTeXML test * The LaTeXML server was updated. In the new version unneccary id's have been removed. Change-Id: I25927912f1500ebfe6d61505c0e06ae2c24d6f6a Update license headers Change-Id: Ia38926b253e53a2cef5dfab623353e1dd79ad613 Make main code input area monospaced A monospaced font is more suitable for writing LaTeX. Change-Id: I1a6c7bbbe3618f43808be15eab1579de8b2ad59f Whitespace fixes Change-Id: Id22a4bfdc1b8c4074f6d7e6f21e8dbc2824d856e Localisation updates from https://translatewiki.net. Change-Id: I01c4bbe241c0842027b030ee912b8e481c90f625 Localisation updates from https://translatewiki.net. Change-Id: Ie012febb53ee642520e71f18285d5b9e4133e224 Improve Math test generation * Use the wikitext parser and not regexp to extract math tags from the page. * Extract the attributes from the math tags as well In a follow up a pseudo attribute in the math tag could be introduced to provide a bug description. Change-Id: I0dec18d4e3f87e7b58b097b2a08c4897ceaf29ac Remove unused XML namespace Bug: T87142 Change-Id: I1c900584aeafbeb5848a3300904710ee312d6223 Add type hinting for newFromMd5 constructor Bug: T87142 Change-Id: I2989ff42e48e802c1eed1877f0f2ac9316b5fd21 Remove duplicate entry from .gitignore Change-Id: I78c7e9b630c6e96a2f125f20461ff9e720754ec4 MathRenderer, SpecialMathShowImage: Correct phpdoc Change-Id: Ibce076dfb6bd3676e288cf2d762ebcb55606246d MathMathML, MathTexvc: Improve PhpDoc Change-Id: I84af65e15bdae81f69f0444afdd9ffa5fe9fc326 Minor clean up, optimisations and documentation corrections * Handle-error-first approach for consistent function body termination at the root with the main intend, and less indention. * __DIR__ instead of dirname( __FILE__ ) * Single quotes. * Correct pickHost documentation: wgMathMathMLUrl is not an array, and is not used in this method, that's at a different level of abstraction (via the constructor). * White spacing. * require_once is not a function. Change-Id: Id4bec8415893245e2569a39ab5406a0820238ae4 Add dependency on mediawiki.toolbar Follows-up Ibcda91bbb164b0. ext.math.editbutton.enabler uses mw.toolbar. The toolbar interface used to be part of mediawiki.action.edit but is now in its own module. Bug: T86235 Change-Id: I37a0b8e84a9bd6a0de0386d5b9924bbbbbd7249c Localisation updates from https://translatewiki.net. Change-Id: I14cfdb2153121a9cbcd40345398dc84d3b17518f Fix rendering issues in MathML mode Force display:none on a hidden MathML rendering to avoid generating focusable node highlights. Move adding of class to setup to ensure it persists after render. Bug: T87007 Change-Id: I5fc21afa61ccc07e9d2126846cf29ee898182a7c Localisation updates from https://translatewiki.net. Change-Id: I2cfa5bae2a6864548816934483cd2276e1071865 Localisation updates from https://translatewiki.net. Change-Id: I7eb73bd36e5cd4461647bf05166fd2fd2fcbee07 Localisation updates from https://translatewiki.net. Change-Id: I174400c5a3dad8f6bf8d03b7c738d5068682ceb3
90 lines
3.1 KiB
PHP
90 lines
3.1 KiB
PHP
<?php
|
|
/**
|
|
* PHPUnit tests to test the wide range of all typical use cases for formulae at Wikipedia.
|
|
* To generate the page https://www.mediawiki.org/wiki/Extension:Math/CoverageTest is used to
|
|
* generate the test data.
|
|
* The testData is generated by the maintenance script Math/maintenance/MathGenerateTests.php.
|
|
* To update the test data locally with vagrant the following procedure is recommended:
|
|
*
|
|
* 1. copy the source from https://www.mediawiki.org/wiki/Extension:Math/CoverageTest to a new page e.g.
|
|
* MathTest at your local vagrant instance
|
|
* 2. run <code>php MathGenerateTests.php MathTest</code> in the maitenance folder of the Math extension.
|
|
* 3. Test local e.g. via
|
|
* <code>sudo php /vagrant/mediawiki/tests/phpunit/phpunit.php /vagrant/mediawiki/extensions/Math/tests/MathCoverageTest.php</code>
|
|
* (If you don't use sudo you might have problems with the permissions set at vagrant.)
|
|
*
|
|
* @group Extensions
|
|
* @group Math
|
|
*/
|
|
class MathCoverageTest extends MediaWikiTestCase {
|
|
protected static $hasTexvc;
|
|
protected static $texvcPath;
|
|
|
|
public static function setUpBeforeClass() {
|
|
global $wgTexvc;
|
|
|
|
if ( is_executable( $wgTexvc ) ) {
|
|
wfDebugLog( __CLASS__, " using build in texvc from "
|
|
. "\$wgMathTexvcCheckExecutable = $wgTexvc" );
|
|
# Using build-in
|
|
self::$hasTexvc = true;
|
|
self::$texvcPath = $wgTexvc;
|
|
} else {
|
|
# Attempt to compile
|
|
wfDebugLog( __CLASS__, " compiling texvc..." );
|
|
$cmd = 'cd ' . dirname( __DIR__ ) . '/math; make --always-make 2>&1';
|
|
wfShellExec( $cmd, $retval );
|
|
if ( $retval === 0 ) {
|
|
self::$hasTexvc = true;
|
|
self::$texvcPath = dirname( __DIR__ ) . '/math/texvc';
|
|
wfDebugLog( __CLASS__, ' compiled texvc at ' . self::$texvcPath );
|
|
} else {
|
|
wfDebugLog( __CLASS__, ' ocaml not available or compilation of texvc failed' );
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Sets up the fixture, for example, opens a network connection.
|
|
* This method is called before a test is executed.
|
|
*/
|
|
protected function setUp() {
|
|
parent::setUp();
|
|
|
|
if ( ! self::$hasTexvc ) {
|
|
$this->markTestSkipped( "No texvc installed on server" );
|
|
} else {
|
|
$this->setMwGlobals( 'wgTexvc',
|
|
self::$texvcPath );
|
|
}
|
|
}
|
|
/**
|
|
* Loops over all test cases provided by the provider function.
|
|
* Compares each the rendering result of each input with the expected output.
|
|
* @dataProvider testProvider
|
|
*/
|
|
public function testCoverage( $input, $output )
|
|
{
|
|
// TODO: Make rendering mode configurable
|
|
// TODO: Provide test-ids
|
|
// TODO: Link to the wikipage that contains the reference rendering
|
|
$this->assertEquals(
|
|
$this->normalize( $output ),
|
|
$this->normalize( MathRenderer::renderMath( $input, array(), MW_MATH_PNG ) ),
|
|
"Failed to render $input"
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Gets the test-data from the file ParserTest.json
|
|
* @return array($input, $output) where $input is the test input string and $output is the rendered html5-output string
|
|
*/
|
|
public function testProvider() {
|
|
return json_decode( file_get_contents( __DIR__ . '/ParserTest.json' ) );
|
|
}
|
|
|
|
private function normalize( $input ) {
|
|
return preg_replace( '#src="(.*?)/(([a-f]|\d)*).png"#', 'src="\2.png"', $input );
|
|
}
|
|
}
|