* Cache results for checked tex and MathML string in one cache.
* Remove access to parsetree
* Introduce run method to speed up service wiring
Note that the indirection table used in previous versions was
abandoned here. texvc does only little unification's of the
input string so that it is not expected that the overall savings
in space and compute time warrant the additional table.
Change-Id: Ib9ce3d2ab02bd9a2a0f9926db6b937435b7e5458
In preparation for caching we store the MathML fragment returned by
local checker. The rational is that the string serialization of the
parse tree is better chachable as the parsetree.
Change-Id: Ice2ef1f4f7b83ed187507d4d067f446603d0d6a5
Introduce new classes for checked exceptions, and use SPL exceptions
for the unchecked ones.
Bug: T328220
Change-Id: Ic44463e910911afe6395c38fd2f59b9bfa02a4f0
Remove additional /v1 when computing internalRestbaseURL from
virtualRestConfig as this will be added in getUrl in MathRestbaseInterface.
internalRestbaseURL was introduced in I2fbc441955a1fe417f264f31f3729ce0715f7f16.
Bug: T334842
Bug: T338381
Change-Id: If2719fb9106e1414ce8814a2fbafa5dcedb84e39
createMock is not a static function (like atLeastOnce)
It is easier to spot that this needs a TestCase when using $this
Change-Id: I6b738e31f43fd7ee2ecd608d0bb853a3ebac3121
This new MathInternalRestbaseURL setting allows the internal URL of
Mathoid to be configured directly, instead of relying on
VirtualRestConfig.
This patch moves the fallback logic for the internal and external API
URL into an extension registration callback. This way, we can keep the
application logic simple, and we can issue config warnings that will
cause the updater to fail, forcing wiki owners to update their config.
Bug: T334842
Change-Id: I2fbc441955a1fe417f264f31f3729ce0715f7f16
Add test case for getType() method.
This will improve the code coverage for this method from 0 to 100%.
Add test case for getTex() method.
This will improve the code coverage for this method from 0 to 100%.
Add test case for evaluateRestbaseCheckResponse() method.
This will improve the code coverage for this method from 0 to 100%.
And covers getIdentifiers(), getWarnings(), setErrorMessage(),
methods from 0 to 100%.
Change-Id: I6bdb6919126e5488838d4fba53eb2f74c89ee63d
This fixes the problems with If208753edfdb301 which was reverted
and adds a new test.
Bug: T335347
Co-Authored-By: <rrana-ctr@wikimedia.org>
Change-Id: I7ddb7b294cbccc4dab42e286fc270f438385bee5
This add new function named "getMultiHttpClient" to the
MathRestbaseInterface.
The function creates a MultiHttpClient object using the HTTP
request factory.
This function will be useful for making HTTP requests to Mathoid.
Add test case for getUrl() method.
Bug: T335347
Change-Id: If208753edfdb3017f722c97cea7653170d05f8a5
In native MathML we only display MathML, also get
rid of enclosing <div / <span container.
Bug: T182041
Change-Id: I26bc4ea88d360d53cc7a34a89bef78812b84b2ea
* contains a minor fix for spacings, so that they are rendered by spacer
* and some minor fixes for section sign
* MMLFullCoverageTest cases: 216
Bug: T327391
Change-Id: I124e7aec5552dec98a8292e5bdb9449a3009560a
* escaped semicolon/commas get rendered as spaces, non escaped get
rendered as text
* MMLFullCoverageTest cases: 4,5,66
Bug: T327391
Change-Id: Icfa557fc43a8ac87fbf856795cb9c26d0fb2c456
* indices in FullCoverageTest: 58,59
* fix a minor issue with less and greater signs to escape case 58
correctly
Bug: T331998
Change-Id: I29265f7954552423924dfc898fd36ec1b387e198
* example "\sideset{_1^2}{_3^4}\sum"
* case 3 phabricator "sideset"
* index: 90
* since result has multiscripts which is not generated by mathoid, there is an explicit test in MMLRenderTest and the previous test is in MMLTexVCUtilTest is skipped
* in MMLGenerationTexUtilTest test for sideset is deactivated
* adds a case from FullCoverageTest for sideset with FQ
* fixes an issue which occured during Phan checks for merging that genFrac throws an error
Bug : T327391
Change-Id: I4c5a5f5a901dbc906f5a1b168d3a8d04f25b9290
* example "\definecolor{ultramarine}{RGB}{0,32,96} a {b \color{ultramarine} c} d"
* case 2 phabricator: "colors"
* index: 22
* some test for parsing color statements
Bug: T327391
Change-Id: I98fdf011a2089dad4e7cb5a7a6aa8433fafe4a94
In perparation to the PHP only native MathML rendering mode, we expose
the parsetree of the checker.
Change-Id: I8da8d0e236c2b001e664ce707c7469ebe8a91eb8
* fix the testfile so it can be read correctly for texvctreebugs category
* fix the test that category can be selected dynamically
Bug: T327391
Change-Id: I51508bddb83ba925c739962df41c04f1ccfd311b
* some adaptions to test and comparator
* minor fix in mappings for ncong
* introduce a LaTeXML Fallback for the tex-cases:
** "\ce{\ca}"
** "\mod"
Bug: T327392
Change-Id: Ie2efa392bd517a28fe8b6e8d0cecdba64cd1c415
* For MMLGenTexVCUtilTest and the MMLComparator
* Also skip some inputs which are not supported
Bug: T327392
Change-Id: Ifac913e2b8e4c70c7222f769c0e7cf93e65de5b8
* Update maintanance script with Chem-Fallback
* delete obsolete MML Lookup (was from mathjax-full)
* TexUtil-Ref is created without chem fallback
Bug: T327388
Change-Id: Id603d66feccf3716828c2aac57acac7d23131ddf
* For the existing MMLGeneration...Tests, reference MathML has been generated
for mathoid and latexml within reference files in json.
* The creation of json files was done with JsonToMathML script
* The test-classes have been adapted a bit, so they can read the new reference files.
* MMLGenerationTexUtil test has export function for input
for maintenance-script for
Bug: T327388
Change-Id: I05a8c7bb5e37cf75faf09ec43e9ce2acc7bf2040
* Implemented multiple-column generation for the HTML-Generator
* Items can be skipped in test by defining index
Bug: T327386
Change-Id: I13148d58246ddcc1f2e6dcd14fa5b4255a1fb8e7
Avoid that user input is passed to the HTML output directly by using
HTML methods for tag generation. This also enables additional phan checks.
Change-Id: Iff584ac829c190e413a36331c53d6835a86bc0d5
* Currently the regression test only tests if all formulae that passed the test before still pass the test
* This change also compares the output
Change-Id: Ib667de2e7e512cf7d045e28a19c6a5f7d994dfc6
* Uq and Dq was mixed
* Simplify regeneration of grammar for node developers
* Speed up npm test by ignoring local test json files
Change-Id: Iec273dcc967be46d3df52260fc56f1969667e497
* the php implementation had fewer curlies compared to the
js implmenetation
* remove unused function name (could be replace get_class)
* Add testcase for declh
Change-Id: I8132604a659d7ddf98e1f73686b40ff0591229f3
I compared with
6c6988c4f6/lib/astutil.js
and found two mistakes:
* Missing space at the end of the color regex.
* Not enough backslash escaping in the last regex.
Note how the code in lines #116 and #130 is now identical.
Change-Id: I13b75ad4a1e4da0766c0d73b8786b21865945697
Positive as well as negative tests. This patch intentionally doesn't
touch the implementation but simply documents how the code currently
behaves.
Change-Id: Ib670ad680087e520f4a99e932e5a2a9fd2d115de
Personally I find this easier to read. It allows to maintain a compact
list of input values with the expected output.
Change-Id: Ifeb532e2b94c674b512b3c40f101977939b83cd5
We fixed this in I47b6d5b but broke it again in Ie8d8106. Let's
finally add a test for this edge-case.
Change-Id: I9a43518f9edf0fab05e76bbb02a30fefd039b77d
Some notes:
* Note that array_column() strips array keys. I checked and this is
fine here.
* Html::element() will skip attributes that are set to null or false.
Perfect fit here.
* I routinely remove comments that do notjing but repeat what the
code already says.
Change-Id: Ie7797b78f1af5d8404c9e97b333fac8c6b3ac85e
Removes functionality to
* select PNG rendering mode
* automated fallback to PNG images for SVG rendering
* PNG mode related class and tests
However, PNG images received from mathoid / restbase are still stored.
Bug: T311620
Change-Id: I595926027433182cc0396570bc3f1ce0cd2cafb3
Needed for I869af06896b9757af18488b916211c5a41a8c563, where I am
trying to change LanguageFactory in MediaWiki core not to use
MWException.
I truly feel mocked after working with this code. See if you can find
the two lines in this diff where the meaningful changes are.
Change-Id: Ifcb31dbb7113ce57526f06558cde2abedee317d7
TexUtil gets instanciated and loads a json for each node in Literal and Fun1. This is not necessary since it takes much RAM and time to load the corresponding JSON from files.
Bug: T321599
Change-Id: I91855ebc4437f075302ae13d367ca4902cc0f3ba
These tests are skipped in CI, but are ran locally.
Contains also preliminary fixes to make the assertions not crash
locally and a shellscript for downloading the json-file with tests locally.
Bug: T315223
Change-Id: If5da7e2a29d9179eabecbb4707ed244f5d445d39
For development history of this changeset see:
Id96a4b1b55e3959aab81f4ba436c5ac125f2a1bb
Bug: T312528
Change-Id: I61cfdbd63f8d50b072ada05927a134686fdd53d3
Texutil related functionalities and tests will come in other changeset.
Related code:
fb56991251/lib/nodes/
Bug: T312528
Change-Id: Iead338a31403348603442b43ae802270f6b1d675
Implement a rest API endpoint that displays the popup that is currently
only shown on a special page.
Code was revived from Idd22057a88312bf1a1cb5546d0a6edca5678d80d
Bug: T288076
Bug: T233099
Change-Id: I65fcbf25ac5818f6c649daf494c719921247e8f5
Add support for the new properties 'P9758' (symbol represents) and
'P2534' (in defining formula) for the special page that shows
in depth information about tagged formulae.
Bug: T312893
Change-Id: I39551e04487f77cca60c89e8c95293032fd5bd6a
The MathEntitySelector gets its config from wbRepo which caused a hard
dependency on the Wikibase client.
If the Wikibase client config is not available a default value (wikidata)
is used to determine the URL of the foreign repo.
As the dropdown will never do write operations, we restrict the repo
access to anonymous read only.
Bug: T313143
Change-Id: Iba33dfd32a78f4ad7c2e99a1f56218458ab884b4
MathWikibaseConfig introduced additional complexity by passing through
some services to MathWikibaseConnector.
The remaining options were just a list of properties that could also be defined as ServiceOptions.
Bug: T313646
Change-Id: Ib9083c0cb62f6d972befc7f5dc3ed47f55cf92a5
* add some basic tests
* migrate MathWikibaseConnectorTest to a unit test
Bug: T313331
Depends-On: Ic3b8d4f685d5cf648a02696284b6ee499502a12a
Change-Id: I38d6425eb5e2c52ae4362c4b8656223a8d9d90a5
* add some basic tests
* MathWikibaseConfig should also be transformed into a service in a follow
up to allow for better testing
Bug: T313331
Change-Id: Iec7446a06d9a117cdeba9d26616f4fdf8e8540ca
Running the updater twice (in test setup and in tests) confused posgres
-> Error 42P07: ERROR: relation "mathoid" already exists
Change-Id: I1113888a38a49ee79b94d83c305eb99baa75f802
Replace Content::getNativeData() calls with TextContent::getText() in Math extension.
Bug: T283679
Change-Id: Iaf3b7f82f14069374de8ede7b519d822f8d6010f
WebdriverIO has dropped support of sync mode due to breaking changes in Chromium, hence all tests have been changed to async.
Update npm packages: @wdio/*, wdio-mediawiki and webdriverio because async mode needs at least webdriverio v7.9.
Remove npm package: @wdio/sync.
Bug: T293076
Change-Id: I35b3b29c09e80306d14a12c5194efeead22a9804
Instead of modifying a page rendering hash,
use the proper mechanism of parser option
registration. The cache is still split on parser
option value. The 'math' option is lazy, since
not all pages contain 'math' tag and we want to
avoid an user preference lookup for every parse.
WARNING: this will invalidate ParserCache for
all pages that contain <math> tags, but according
to Moritz, this is about 1% of all pages, so we
should be fine.
Setting up the test is still rather hard and weird
due to very hacky rendering mode to user option
converter, and math renderer interaction with the DB.
This will be cleaned up later.
Depends-On: I92b3e18fabef4eecac2ec2a4844f1be2716e5d89
Change-Id: I3bce04684070ad306685dabbc51267def25773cd
This is doing a bulk of the job of creating a service
for working with math modes configuration. There's
still things to do, like moving math mode names,
and perhaps depending on default user options to
provide a bit more convenience, but that will be the
next step.
Change-Id: I1259a93651920f44104f2f5135e3e620c858be8d
When running tests locally I don't want to install wikibase
if I'm not working on wikibase-math integration. It's
annoying that some of the tests fail in this schenario.
Depends-On: Id996abdb353547b95d795494ba961b9a215ef2ef
Change-Id: I836c7a3bab5393b7482e985d9148226373ae0a58
Additionally - remove RestbaseInterface::checkBackend.
When HTTP requests are banned from unit tests this method
makes no sence.
MathoidCli tests were not reenabled cause it's a bit hard
to mock shell acceess. Hopefully as part of Shellbox
transition we can have MockShell trait in core and reenable
those tests
Bug: T265628
Depends-On: I350ed59af603a0504704af3265787a4be8f2dc2a
Change-Id: I294d0ed905193850dc38cb3071eb9b31c8863121
The overall aim is to make renderer and checker
proper services and stop storing each operation
state in them. This patch reduces the number of
places where we store the lastError. I've decided
to stop here in the first pass so that the patch
doesn't grow out of proportion.
Change-Id: Ice7e1f9f2f074d62ef1819355a510ce0b0335d88
Instead of having a separate method for getting the post data
in MathLateXML, we can just override getPostData method from
parent and make the makeRequest method signature much simpler.
Change-Id: I07b683856885396ff7b6b5a40df79399828c8214
This is not the job of an extension to be a load balancer.
This feature was already deprecated and is not used in WMF prod.
Change-Id: I950dbaf45bc40d9d9ed61b1c98b339d3d38326fc
JUnit reporter is required to create the XML file that Jenkins uses to
create Test Result Trend chart for selenium-daily-beta-Math
job.
Bug: T214686
Change-Id: Ic2373f3b89946cf191cfcb1dd9ed99608deb660c