wiki.techinc.nl/tests/phpunit
Subramanya Sastry c8d0470f4b Make ParsoidOutputAccess a wrapper over ParserOutputAccess
* Updated ParserOutput to set Parsoid render ids that REST API
  functionality expects in ParserOutput objects.
* CacheThresholdTime functionality no longer exists since it was
  implemented in ParsoidOutputAccess and ParserOutputAccess doesn't
  support it. This is tracked in T346765.
* Enforce the constraint that uncacheable parses are only for fake or
  mutable revisions. Updated tests that violated this constraint to
  use 'getParseOutput' instead of calling the parse method directly.
* Had to make some changes in ParsoidParser around use of preferredVariant
  passed to Parsoid. I also left some TODO comments for future fixes.
  T267067 is also relevant here.

PARSOID-SPECIFIC OPTIONS:
* logLinterData: linter data is always logged by default -- removed
  support to disable it. Linter extension handles stale lints properly
  and it is better to let it handle it rather than add special cases
  to the API.
* offsetType: Moved this support to ParsoidHandler as a post-processing
  of byte-offset output. This eliminates the need to support this
  Parsoid-specific options in the ContentHandler hierarchies.
* body_only / wrapSections: Handled this in HtmlOutputRendererHelper
  as a post-processing of regular output by removing sections and
  returning the body content only. This does result in some useless
  section-wrapping work with Parsoid, but the simplification is probably
  worth it. If in the future, we support Parsoid-specific options in
  the ContentHandler hierarchy, we could re-introduce this. But, in any
  case, this "fragment" flavor options is likely to get moved out of
  core into the VisualEditor extension code.

DEPLOYMENT:
* This patch changes the cache key by setting the useParsoid option
  in ParserOptions. The parent patch handles this to ensure we don't
  encounter a cold cache on deploy.

TESTS:
* Updated tests and mocks to reflect new reality.
* Do we need any new tests?

Bug: T332931
Change-Id: Ic9b7cc0fcf365e772b7d080d76a065e3fd585f80
2023-10-13 15:03:03 -05:00
..
data Update Codex from v0.19.0 to v0.20.0 2023-09-27 14:10:59 -07:00
docs tests: Unbreak and actually run ExportDemoTest 2023-08-08 15:30:54 +00:00
includes Make ParsoidOutputAccess a wrapper over ParserOutputAccess 2023-10-13 15:03:03 -05:00
integration/includes Make ParsoidOutputAccess a wrapper over ParserOutputAccess 2023-10-13 15:03:03 -05:00
maintenance Bump codesniffer to 42.0.0 2023-09-27 15:06:32 -04:00
mocks Migrate to IConnectionProvider methods in more places 2023-10-05 19:51:20 +02:00
structure Update references to config-vars.php 2023-09-23 03:37:44 +00:00
suites phpunit: Determine what extensions to load in unit tests via config 2023-09-25 23:03:48 +00:00
tests tests: Migrate some Database::select() calls to SQB 2023-09-13 21:34:49 +02:00
unit Make ParsoidOutputAccess a wrapper over ParserOutputAccess 2023-10-13 15:03:03 -05:00
bootstrap.common.php phpunit: Set the MW_INSTALL_PATH env variable if needed 2023-07-17 15:28:26 +02:00
bootstrap.integration.php phpunit: Streamline loading of Setup.php 2023-07-13 03:21:45 +02:00
bootstrap.maintenance.php Merge "Avoid mentioning tests/phpunit.php in documentation" 2023-07-24 16:32:47 +00:00
bootstrap.php Bump codesniffer to 42.0.0 2023-09-27 15:06:32 -04:00
getPHPUnitExtensionsAndSkins.php phpunit: Determine what extensions to load in unit tests via config 2023-09-25 23:03:48 +00:00
HamcrestPHPUnitIntegration.php
MediaWikiCoversValidator.php
MediaWikiGroupValidator.php Make isTestInDatabaseGroup static and case-sensitive 2023-08-15 21:01:03 +00:00
MediaWikiIntegrationTestCase.php Bump codesniffer to 42.0.0 2023-09-27 15:06:32 -04:00
MediaWikiLangTestCase.php Replace usages of deprecated MWException 2023-06-06 17:05:32 +02:00
MediaWikiLoggerPHPUnitExtension.php
MediaWikiPHPUnitResultPrinter.php
MediaWikiTeardownPHPUnitExtension.php phpunit: Use PHPUnit hooks to tear down the test DB after the last test 2023-07-13 01:10:11 +02:00
MediaWikiTestCaseTrait.php phpunit: Remove reference of deprecated params in TestCaseTrait 2023-09-06 11:52:36 +00:00
MediaWikiUnitTestCase.php Namespace Config-related classes under \MediaWiki\Config 2023-09-21 05:41:58 +00:00
MWTestDox.php
phpunit.php phpunit: Deprecate tests/phpunit/phpunit.php script 2023-07-12 19:28:39 +00:00
README.md
ResourceLoaderTestCase.php Namespace Config-related classes under \MediaWiki\Config 2023-09-21 05:41:58 +00:00
suite.xml tests: Unbreak and actually run ExportDemoTest 2023-08-08 15:30:54 +00:00
TestSelectQueryBuilder.php Migrate assertSelect() to SelectQueryBuilder 2023-06-28 09:03:58 +10:00

MediaWiki PHPUnit tests

WARNING: Integration tests may be destructive and alter or remove parts of your local database. We try to use temporary tables where possible, but you must never run tests on a production server or on a wiki where you don't want to lose data.

Running tests

If you haven't already, run composer update (specifically without --no-dev) in the MediaWiki core directory. This will install PHPUnit.

To read about how to run specific tests, refer to:

https://www.mediawiki.org/wiki/Manual:PHP_unit_testing/Running_the_tests

Writing tests

A guide to writing PHPUnit tests for MediaWiki can be found at:

https://www.mediawiki.org/wiki/Manual:PHP_unit_testing