Physikerwelt has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/189355

Change subject: Move integration tests to a new special page
......................................................................

Move integration tests to a new special page

The integration tests depend on the presence of external servers
and the user settings.
First, people are bothered by  failing test due to problems with
those servers and second, administrators need to run phpunit tests
to verify the configuration settings.
Therefore, we move the integration tests to a special page.

Bug: T87389
Change-Id: If66f13fe7fa16868cd4b1d8f0e0a6e3d49448b27
---
M Math.alias.php
M Math.php
A SpecialMathStatus.php
M i18n/en.json
M i18n/qqq.json
M tests/MathLaTeXMLTest.php
M tests/MathMathMLTest.php
7 files changed, 157 insertions(+), 96 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Math 
refs/changes/55/189355/1

diff --git a/Math.alias.php b/Math.alias.php
index 91de3f5..01a9a59 100644
--- a/Math.alias.php
+++ b/Math.alias.php
@@ -10,5 +10,6 @@
 
 /** English (English) */
 $specialPageAliases['en'] = array(
-       'MathShowImage' => array( 'MathShowImage', 'MathShowImage' ) // No need 
to translate! The PageTitle does not appear.
+       'MathShowImage' => array( 'MathShowImage', 'MathShowImage' ), // No 
need to translate! The PageTitle does not appear.
+       'MathStatus' => array( 'MathStatus', 'MathStatus' )
 );
diff --git a/Math.php b/Math.php
index 4dca145..30929dc 100644
--- a/Math.php
+++ b/Math.php
@@ -230,6 +230,7 @@
 $wgAutoloadClasses['MathInputCheck'] = $dir . 'MathInputCheck.php';
 $wgAutoloadClasses['MathInputCheckTexvc'] = $dir . 'MathInputCheckTexvc.php';
 $wgAutoloadClasses['SpecialMathShowImage'] = $dir . 'SpecialMathShowImage.php';
+$wgAutoloadClasses['SpecialMathStatus'] = $dir . 'SpecialMathStatus.php';
 $wgMessagesDirs['Math'] = __DIR__ . '/i18n';
 $wgExtensionMessagesFiles['Math'] = $dir . 'Math.i18n.php';
 $wgExtensionMessagesFiles['MathAlias'] = $dir . 'Math.alias.php';
@@ -237,7 +238,9 @@
 $wgParserTestFiles[] = $dir . 'mathParserTests.txt';
 
 $wgSpecialPageGroups[ 'MathShowImage' ] = 'other';
+$wgSpecialPageGroups[ 'MathStatus' ] = 'other';
 $wgSpecialPages['MathShowImage'] = 'SpecialMathShowImage';
+$wgSpecialPages['MathStatus'] = 'SpecialMathStatus';
 
 $wgResourceModules['ext.math.styles'] = array(
        'localBasePath' => __DIR__ . '/modules',
diff --git a/SpecialMathStatus.php b/SpecialMathStatus.php
new file mode 100644
index 0000000..39cb34d
--- /dev/null
+++ b/SpecialMathStatus.php
@@ -0,0 +1,138 @@
+<?php
+/**
+ * MediaWiki math extension
+ *
+ * (c) 2002-2015 Tomasz Wegrzanowski, Brion Vibber, Moritz Schubotz, and other 
MediaWiki contributors
+ * GPLv2 license; info in main package.
+ *
+ * @author Moritz Schubotz
+ */
+class SpecialMathStatus extends SpecialPage {
+
+       public function __construct( $name = 'MathStatus' ) {
+               parent::__construct( $name );
+       }
+
+       /**
+        * @param null|string $query
+        *
+        * @throws MWException
+        * @throws PermissionsError
+        */
+       function execute( $query ) {
+               $this->setHeaders();
+               if ( ! ( $this->getUser()->isAllowed( 'purge' ) ) ) {
+                       // The effect of loading this page is comparable to 
purge a page.
+                       // If desired a dedicated right e.g. "viewmathstatus" 
could be used instead.
+                       throw new PermissionsError( 'purge' );
+               }
+
+               $out = $this->getOutput();
+               $out->addWikiMsg( 'math-status-introduction' );
+               $enabledMathModes = MathHooks::getMathNames();
+               foreach ( $enabledMathModes as $modeNr => $modeName ){
+                       $out->addWikiText( "* $modeName" );
+                       switch( $modeNr ){
+                               case MW_MATH_MATHML:
+                                       $this->runMathMLTest( $modeName );
+                                       break;
+                               case MW_MATH_LATEXML:
+                                       $this->runMathLaTeXMLTest( $modeName );
+                       }
+               }
+       }
+
+       private function runMathMLTest( $modeName ) {
+               $this->getOutput()->addWikiMsgArray( 'math-test-start', 
$modeName );
+               $this->testSpecialCaseText();
+               $this->testMathMLIntegration();
+               $this->testPmmlInput();
+               $this->getOutput()->addWikiMsgArray( 'math-test-end', $modeName 
);
+       }
+
+       private function runMathLaTeXMLTest( $modeName ) {
+               $this->getOutput()->addWikiMsgArray( 'math-test-start', 
$modeName );
+               $this->testMathMLIntegration();
+               $this->getOutput()->addWikiMsgArray( 'math-test-end', $modeName 
);
+       }
+
+       public function testSpecialCaseText() {
+               $renderer = MathRenderer::getRenderer( 'x^2+\text{a sample 
Text}', array(), MW_MATH_MATHML );
+               $expected = 'a sample Text</mtext>';
+               $this->assertTrue( $renderer->render(), 'Rendering the input 
"x^2+\text{a sample Text}"'  );
+               $this->assertContains( $expected, $renderer->getHtmlOutput(), 
'Comparing to the reference rendering' );
+       }
+
+       /**
+        * Checks the basic functionality
+        * i.e. if the span element is generated right.
+        */
+       public function testMathMLIntegration() {
+               $svgRef = '<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";>
+<svg xmlns:xlink="http://www.w3.org/1999/xlink"; style="vertical-align: 
-0.333ex; " width="5.167ex" height="1.833ex" viewBox="0 -717.9 2195.4 823.9" 
xmlns="http://www.w3.org/2000/svg";>
+<defs>
+<path stroke-width="10" id="E1-MJMATHI-61" d="M33 157Q33 258 109 349T280 
441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 
68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 
483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 
393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 
-10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 
374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 
254 59T298 110Q300 114 325 217T351 328Z"></path>
+<path stroke-width="10" id="E1-MJMAIN-2B" d="M56 237T56 250T70 270H369V420L370 
570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 
-82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"></path>
+<path stroke-width="10" id="E1-MJMATHI-62" d="M73 647Q73 657 77 670T89 683Q90 
683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 
396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 
-11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 
637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 
397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 
26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z"></path>
+</defs>
+<g stroke="black" fill="black" stroke-width="0" transform="matrix(1 0 0 -1 0 
0)">
+ <use xlink:href="#E1-MJMATHI-61"></use>
+ <use xlink:href="#E1-MJMAIN-2B" x="756" y="0"></use>
+ <use xlink:href="#E1-MJMATHI-62" x="1761" y="0"></use>
+</g>
+</svg>';
+               $renderer = MathRenderer::getRenderer( "a+b", array(), 
MW_MATH_MATHML );
+               $this->assertTrue( $renderer->render( true ), "Rendering of a+b 
in plain MathML mode" );
+               $real = str_replace( "\n", '', $renderer->getHtmlOutput() );
+               $expected = '<mo>+</mo>';
+               $this->assertContains( $expected, $real, "Checking the presence 
of '+' in the MathML output" );
+               $this->assertEquals( $svgRef, $renderer->getSvg(), "Comparing 
the generated SVG with the reference" );
+       }
+
+       /**
+        * Checks the experimental option to 'render' MathML input
+        */
+       public function testPmmlInput() {
+               // sample from 'Navajo Coal Combustion and Respiratory Health 
Near Shiprock, New Mexico' in ''Journal of Environmental and Public Health'' , 
vol. 2010p.
+               // authors  Joseph E. Bunnell;  Linda V. Garcia;  Jill M. 
Furst;  Harry Lerch;  Ricardo A. Olea;  Stephen E. Suitt;  Allan Kolker
+               $inputSample = '<msub>  <mrow>  <mi> P</mi> </mrow>  <mrow>  
<mi> i</mi>  <mi> j</mi> </mrow> </msub>  <mo> =</mo>  <mfrac>  <mrow>  <mn> 
100</mn>  <msub>  <mrow>  <mi> d</mi> </mrow>  <mrow>  <mi> i</mi>  <mi> j</mi> 
</mrow> </msub> </mrow>  <mrow>  <mn> 6.75</mn>  <msub>  <mrow>  <mi> r</mi> 
</mrow>  <mrow>  <mi> j</mi> </mrow> </msub> </mrow> </mfrac>  <mo> ,</mo> 
</math>';
+               $attribs = array( 'type' => 'pmml' );
+               $renderer = new MathMathML( $inputSample, $attribs );
+               $this->assertEquals( 'pmml', $renderer->getInputType(), 
'Checking if MathML input is supported' );
+               $this->assertTrue( $renderer->render(), 'Rendering Presentation 
MathML sample' );
+               $real = MathRenderer::renderMath( $inputSample, $attribs, 
MW_MATH_MATHML );
+               $expected = 'hash=5628b8248b79267ecac656102334d5e3&amp;mode=5';
+               $this->assertContains( $expected, $real, 'Checking if the link 
to SVG image is correct' );
+       }
+
+       /**
+        * Checks the basic functionality
+        * i.e. if the span element is generated right.
+        */
+       public function testLaTeXMLIntegration() {
+               $renderer = MathRenderer::getRenderer( "a+b", array(), 
MW_MATH_LATEXML );
+               $this->assertTrue( $renderer->render( true ), "Rendering of a+b 
in LaTeXML mode" );
+               $expected = '<math xmlns="http://www.w3.org/1998/Math/MathML"; 
id="p1.1.m1.1" class="ltx_Math" alttext="{\displaystyle a+b}"  
xref="p1.1.m1.1.cmml"><semantics id="p1.1.m1.1a" xref="p1.1.m1.1.cmml"><mrow 
id="p1.1.m1.1.4" xref="p1.1.m1.1.4.cmml"><mi id="p1.1.m1.1.1" 
xref="p1.1.m1.1.1.cmml">a</mi><mo id="p1.1.m1.1.2" 
xref="p1.1.m1.1.2.cmml">+</mo><mi id="p1.1.m1.1.3" 
xref="p1.1.m1.1.3.cmml">b</mi></mrow><annotation-xml encoding="MathML-Content" 
id="p1.1.m1.1.cmml" xref="p1.1.m1.1"><apply id="p1.1.m1.1.4.cmml" 
xref="p1.1.m1.1.4"><plus id="p1.1.m1.1.2.cmml" xref="p1.1.m1.1.2"/><ci 
id="p1.1.m1.1.1.cmml" xref="p1.1.m1.1.1">a</ci><ci id="p1.1.m1.1.3.cmml" 
xref="p1.1.m1.1.3">b</ci></apply></annotation-xml><annotation 
encoding="application/x-tex" id="p1.1.m1.1b" 
xref="p1.1.m1.1.cmml">{\displaystyle a+b}</annotation></semantics></math>';
+               $real = preg_replace( "/\n\s*/", '', $renderer->getHtmlOutput() 
);
+               $this->assertContains( $expected, $real
+                       , "Comparing the output to the MathML reference 
rendering" .
+                         $renderer->getLastError() );
+       }
+
+       private function assertTrue( $expression, $message = '' ) {
+               if ( $expression ){
+                       $this->getOutput()->addWikiMsgArray( 
'math-test-success' , $message );
+               } else {
+                       $this->getOutput()->addWikiMsgArray( 'math-test-fail' , 
$message );
+               }
+       }
+
+       private function assertContains( $expected, $real, $message = '' ) {
+               $this->assertTrue( strpos( $real, $expected ) , $message );
+       }
+
+       private function assertEquals( $expected, $real, $message = '' ) {
+               $this->assertTrue( $expected == $real, $message );
+       }
+}
\ No newline at end of file
diff --git a/i18n/en.json b/i18n/en.json
index 75ec763..5c9d868 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -26,8 +26,13 @@
     "math_notexvccheck": "Missing <code>texvccheck</code> executable. Please 
see math/README to configure.",
     "math_output_error": "Cannot store math image on filesystem.",
     "math_sample": "Insert formula here",
+    "math-status-introduction" : "This page displays information about the 
enabled math rendering modes.\n\nThe following rendering mode is/rendering 
modes are enabled.",
     "math_syntax_error": "syntax error",
     "math_timeout": "$1 timeout from \"$2\".",
+    "math-test-end": "Backend tests for rendering mode \"$1\" completed.",
+    "math-test-fail": "Test \"$1\" failed.",
+    "math-test-start": "Running backend tests for rendering mode \"$1\".",
+    "math-test-success": "Test \"$1\" succeeded.",
     "math_tip": "Mathematical formula (LaTeX)",
     "math_unknown_error": "unknown error",
     "math_unknown_function": "unknown function \"$1\"",
@@ -38,5 +43,6 @@
     "mw_math_mathml": "MathML with SVG or PNG fallback (recommended for modern 
browsers and accessibility tools)",
     "mw_math_png": "PNG images",
     "mw_math_source": "TeX source (for text browsers)",
-    "prefs-math": "Math"
+    "prefs-math": "Math",
+    "mathstatus": "Math status"
 }
diff --git a/i18n/qqq.json b/i18n/qqq.json
index ad05ea6..b26ba3e 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -36,8 +36,13 @@
        "math_notexvccheck": "Used as error message.\n\nThis message follows 
the message {{msg-mw|Math failure}}.\n\nSee also:\n* {{msg-mw|Math notexvc}}",
        "math_output_error": "Used as error message if the texvc output file 
could not be stored.\n\nThis message follows the message {{msg-mw|Math 
failure}}.",
        "math_sample": "The sample formula text that you get when you press the 
fourth button from the right on the edit toolbar.",
+       "math-status-introduction": "Used as special-page text.",
        "math_syntax_error": "Used as error message for a texvc syntax 
error.\n\nThis message follows the message {{msg-mw|Math 
failure}}.\n{{Identical|Syntax error}}",
        "math_timeout": "Used as error message.\n\nParameters:\n* $1 - 
rendering type (either LaTeXML or Mathoid)\n* $2 - hostname or URL",
+       "math-test-end": "Used as special-page text.\n\nParameters:\n* $1 
rendering mode",
+       "math-test-fail": "Used as special-page text.\n\nParameters:\n* $1 test 
name",
+       "math-test-start": "Used as special-page text.\n\nParameters:\n* $1 
rendering mode",
+       "math-test-success": "Used as special-page text.\n\nParameters:\n* $1 
test name",
        "math_tip": "This is the text that appears when you hover the mouse 
over the fourth button from the right on the edit toolbar.",
        "math_unknown_error": "Used as error message for unknown texvc 
error.\n\nThis message follows the message {{msg-mw|Math 
failure}}.\n{{Identical|Unknown error}}",
        "math_unknown_function": "Used as error message when texvc encounters 
an unknown function.\n\nPreceded by the message {{msg-mw|Math 
failure}}.\n\nParameters:\n* $1 - name of unknown function",
@@ -48,5 +53,6 @@
        "mw_math_mathml": "Used as label for MathML radio button.\n\nSee 
also:\n* {{msg-mw|Mw math png}}\n* {{msg-mw|Mw math source}}\n* {{msg-mw|Mw 
math latexml}}",
        "mw_math_png": "In user preferences. All mw_math_* messages MUST be 
different, things will break otherwise!\n\nUsed as label for radio 
button.\n\nSee also:\n* {{msg-mw|Mw math source}}\n* {{msg-mw|Mw math 
mathjax}}\n* {{msg-mw|Mw math latexml}}",
        "mw_math_source": "In user preferences (math). All mw_math_* messages 
MUST be different, things will break otherwise!\n\nUsed as label for source 
radio button.\n\nSee also:\n* {{msg-mw|Mw math png}}\n* {{msg-mw|Mw math 
mathjax}}\n* {{msg-mw|Mw math latexml}}",
-       "prefs-math": "Used in user preferences as a section 
heading.\n{{Identical|Math}}"
+       "prefs-math": "Used in user preferences as a section 
heading.\n{{Identical|Math}}",
+       "mathstatus": "Label for special-page"
 }
diff --git a/tests/MathLaTeXMLTest.php b/tests/MathLaTeXMLTest.php
index fc40121..0b98b60 100644
--- a/tests/MathLaTeXMLTest.php
+++ b/tests/MathLaTeXMLTest.php
@@ -33,20 +33,4 @@
                        'test serialization of a string setting'
                );
        }
-
-       /**
-        * Checks the basic functionality
-        * i.e. if the span element is generated right.
-        */
-       public function testIntegration() {
-               $this->setMwGlobals( 'wgMathLaTeXMLTimeout', 20 );
-               $this->setMwGlobals( 'wgMathValidModes', array( MW_MATH_LATEXML 
) );
-               $renderer = MathRenderer::getRenderer( "a+b", array(), 
MW_MATH_LATEXML );
-               $this->assertTrue( $renderer->render( true ) );
-               $expected = '<math xmlns="http://www.w3.org/1998/Math/MathML"; 
id="p1.1.m1.1" class="ltx_Math" alttext="{\displaystyle a+b}" ><semantics 
id="p1.1.m1.1a"><mrow id="p1.1.m1.1.4" xref="p1.1.m1.1.4.cmml"><mi 
id="p1.1.m1.1.1" xref="p1.1.m1.1.1.cmml">a</mi><mo id="p1.1.m1.1.2" 
xref="p1.1.m1.1.2.cmml">+</mo><mi id="p1.1.m1.1.3" 
xref="p1.1.m1.1.3.cmml">b</mi></mrow><annotation-xml encoding="MathML-Content" 
id="p1.1.m1.1b"><apply id="p1.1.m1.1.4.cmml" xref="p1.1.m1.1.4"><plus 
id="p1.1.m1.1.2.cmml" xref="p1.1.m1.1.2"/><ci id="p1.1.m1.1.1.cmml" 
xref="p1.1.m1.1.1">a</ci><ci id="p1.1.m1.1.3.cmml" 
xref="p1.1.m1.1.3">b</ci></apply></annotation-xml><annotation 
encoding="application/x-tex" id="p1.1.m1.1c">{\displaystyle 
a+b}</annotation></semantics></math>';
-               $real = preg_replace( "/\n\s*/", '', $renderer->getHtmlOutput() 
);
-               $this->assertContains( $expected, $real
-                       , "Rendering of a+b in plain Text mode." .
-                       $renderer->getLastError() );
-       }
 }
diff --git a/tests/MathMathMLTest.php b/tests/MathMathMLTest.php
index 5182a0a..610b536 100644
--- a/tests/MathMathMLTest.php
+++ b/tests/MathMathMLTest.php
@@ -26,17 +26,6 @@
        }
 
        /**
-        * Test rendering the string '0' see
-        * https://trac.mathweb.org/LaTeXML/ticket/1752
-        */
-       public function testSpecialCaseText() {
-               $renderer = MathRenderer::getRenderer( 'x^2+\text{a sample 
Text}', array(), MW_MATH_MATHML );
-               $expected = 'a sample Text</mtext>';
-               $this->assertTrue( $renderer->render() );
-               $this->assertContains( $expected, $renderer->getHtmlOutput(), 
'Rendering the String "\text{CR}"' );
-       }
-
-       /**
         * Tests behavior of makeRequest() that communicates with the host.
         * Testcase: Invalid request.
         * @covers MathTexvc::makeRequest
@@ -115,72 +104,6 @@
                $this->assertFalse( $renderer->isValidMathML( $invalidSample ), 
'test if math expression is invalid mathml sample' );
        }
 
-
-       /**
-        * Checks the basic functionality
-        * i.e. if the span element is generated right.
-        */
-       public function testIntegration() {
-               global $wgMathMathMLTimeout;
-               $svgRef = '<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";>
-<svg xmlns:xlink="http://www.w3.org/1999/xlink"; style="vertical-align: 
-0.333ex; " width="5.167ex" height="1.833ex" viewBox="0 -717.9 2195.4 823.9" 
xmlns="http://www.w3.org/2000/svg";>
-<defs>
-<path stroke-width="10" id="E1-MJMATHI-61" d="M33 157Q33 258 109 349T280 
441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 
68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 
483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 
393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 
-10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 
374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 
254 59T298 110Q300 114 325 217T351 328Z"></path>
-<path stroke-width="10" id="E1-MJMAIN-2B" d="M56 237T56 250T70 270H369V420L370 
570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 
-82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"></path>
-<path stroke-width="10" id="E1-MJMATHI-62" d="M73 647Q73 657 77 670T89 683Q90 
683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 
396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 
-11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 
637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 
397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 
26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z"></path>
-</defs>
-<g stroke="black" fill="black" stroke-width="0" transform="matrix(1 0 0 -1 0 
0)">
- <use xlink:href="#E1-MJMATHI-61"></use>
- <use xlink:href="#E1-MJMAIN-2B" x="756" y="0"></use>
- <use xlink:href="#E1-MJMATHI-62" x="1761" y="0"></use>
-</g>
-</svg>';
-               $wgMathMathMLTimeout = 20;
-               $renderer = MathRenderer::getRenderer( "a+b", array(), 
MW_MATH_MATHML );
-               $this->assertTrue( $renderer->render( true ) );
-               $real = str_replace( "\n", '', $renderer->getHtmlOutput() );
-               $expected = '<mo>+</mo>';
-               $this->assertContains( $expected, $real, "Rendering of a+b in 
plain MathML mode" );
-               $this->assertEquals( $svgRef, $renderer->getSvg() );
-       }
-
-       /**
-        * Checks the experimental option to 'render' MathML input
-        */
-       public function testPmmlInput() {
-               // sample from 'Navajo Coal Combustion and Respiratory Health 
Near Shiprock, New Mexico' in ''Journal of Environmental and Public Health'' , 
vol. 2010p.
-               // authors  Joseph E. Bunnell;  Linda V. Garcia;  Jill M. 
Furst;  Harry Lerch;  Ricardo A. Olea;  Stephen E. Suitt;  Allan Kolker
-               $inputSample = '<msub>  <mrow>  <mi> P</mi> </mrow>  <mrow>  
<mi> i</mi>  <mi> j</mi> </mrow> </msub>  <mo> =</mo>  <mfrac>  <mrow>  <mn> 
100</mn>  <msub>  <mrow>  <mi> d</mi> </mrow>  <mrow>  <mi> i</mi>  <mi> j</mi> 
</mrow> </msub> </mrow>  <mrow>  <mn> 6.75</mn>  <msub>  <mrow>  <mi> r</mi> 
</mrow>  <mrow>  <mi> j</mi> </mrow> </msub> </mrow> </mfrac>  <mo> ,</mo> 
</math>';
-               $attribs = array( 'type' => 'pmml' );
-               $renderer = new MathMathML( $inputSample, $attribs );
-               $this->assertEquals( 'pmml', $renderer->getInputType(), 'Input 
type was not set correctly' );
-               $this->assertTrue( $renderer->render(), 'Failed to render with 
error:' . $renderer->getLastError() );
-               $real = MathRenderer::renderMath( $inputSample, $attribs, 
MW_MATH_MATHML );
-               $expected = 'hash=5628b8248b79267ecac656102334d5e3&amp;mode=5';
-               $this->assertContains( $expected, $real, 'Link to SVG image 
missing' );
-       }
-
-       /**
-        * Checks the creation of the math table with debugging enabled.
-        * @covers MathHooks::onLoadExtensionSchemaUpdates
-        */
-       public function testDebug() {
-               $dbr = wfGetDB( DB_SLAVE );
-               if ( $dbr->getType() !== 'mysql' ) {
-                       $this->markTestSkipped( 'No math debug support for 
SQLite' );
-               }
-               $this->setMwGlobals( 'wgMathValidModes', array( MW_MATH_MATHML 
) );
-               $this->setMwGlobals( 'wgMathDebug', true );
-               $renderer = MathRenderer::getRenderer( "a+b", array(), 
MW_MATH_MATHML );
-               $this->assertTrue( $renderer->render( true ) );
-               $hash = $renderer->getInputHash();
-               $row = $dbr->selectRow("mathlog", "*", array( "math_inputhash" 
=> $hash ) , __METHOD__,
-                       array("order by" => "math_timestamp desc"));
-               $this->assertContains( "success", $row->math_log );
-               $this->assertEquals( 
"type=inline-TeX&q=%7B%5Cdisplaystyle%20a%2Bb%7D", $row->math_post );
-               $this->assertEquals( 5, $row->math_mode);
-       }
 }
 
 /**

-- 
To view, visit https://gerrit.wikimedia.org/r/189355
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If66f13fe7fa16868cd4b1d8f0e0a6e3d49448b27
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Math
Gerrit-Branch: debug
Gerrit-Owner: Physikerwelt <w...@physikerwelt.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to