wiki.techinc.nl/tests/phpunit
Timo Tijhof b28faecb2b ResourceLoader: Remove support for CSP nonce
The "nonce" CSP feature has been never been properly tested and is not
on track to be enabled at WMF or in MW by default. The use of
nonce-protected eval is not particularly meaningful. It is trivially
bypassed by mw.loader.implement, mw.loader.store, or importScript();
all of which allow any code to be executed directly, or to be stored
and loaded from a first-party origin.

The "nonce" feature is not required for the T208188 roadmap, and with
change I51b8535b2b21a3 there is now also a (small) performance reason
to keep this disabled long-term.

Until and unless there is a plan for enabling this particular aspect
of CSP, we might as well remove it so that we don't waste time our
time building abstraction layers and satisfying dependency injection
through many years for something that might never be used.

Note that this does not remove CSP support from ResourceLoader, and
does not take away from the future of enabling CSP in MediaWiki to
e.g. strictly block third-party scripts, or to require domains to
opt-in by site config or user pref (T208188).

Change-Id: I5a176c41a06a484a11e64bdacdc42b40811fe72e
2023-08-09 02:30:39 +01:00
..
data LocalisationCache: Add CORE_ONLY_KEYS, ALL_EXCEPT_CORE_ONLY_KEYS 2023-07-28 16:32:59 +02:00
docs
includes ResourceLoader: Remove support for CSP nonce 2023-08-09 02:30:39 +01:00
integration/includes Fix more non-database tests accessing the database 2023-08-06 15:30:41 +00:00
maintenance tests: Avoid database usage when possible 2023-07-31 00:46:13 +00:00
mocks Override inContentLanguage for FakeQqxMessageLocalizer 2023-07-31 16:22:42 +02:00
structure Avoid DB access in more non-Database tests 2023-08-06 16:07:27 +00:00
suites phpunit: Delete DummyExtensionsTest 2023-07-17 12:16:27 +00:00
tests Replace array_keys in foreach to use $_ as value instead 2023-07-10 02:53:52 +00:00
unit Merge "Reorg: Move ProxyLookup to Request/" 2023-08-06 12:31:54 +00: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 phpunit: Streamline loading of Setup.php 2023-07-13 03:21:45 +02:00
HamcrestPHPUnitIntegration.php
MediaWikiCoversValidator.php
MediaWikiGroupValidator.php
MediaWikiIntegrationTestCase.php phpunit: Throw exception in getDb() for non-database tests 2023-07-31 00:06:21 +00: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: Move assertArraySubmapSame() to MediaWikiTestCaseTrait 2023-05-01 22:19:21 +00:00
MediaWikiUnitTestCase.php
MWTestDox.php
phpunit.php phpunit: Deprecate tests/phpunit/phpunit.php script 2023-07-12 19:28:39 +00:00
README.md
ResourceLoaderTestCase.php ResourceLoader: Switch Resources.php to MW_INSTALL_PATH 2023-07-31 13:00:27 +02:00
suite.xml phpunit: Use PHPUnit hooks to tear down the test DB after the last test 2023-07-13 01:10:11 +02: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