wiki.techinc.nl/tests/phpunit
Gergő Tisza 4f29c96197 Allow putting the app ID in the password for bot passwords
Bot passwords allow backwards-compatible login (with grants, for API
usage only) with "<real username>@<botname>" for username plus a
random-generated password.
This doesn't work well with some bot frameworks (including Pywikibot,
the most popular one) which assume that the text that goes into the
username field of the login API is the username that they will be
logged in with afterwards (and so the @-postfix causes all kinds of
errors).

Since the goal of bot passwords is compatibility with old unmaintained
API clients, this patch adds an alternative format which does not
cause problems with old bots: use the username normally, and use
"<botname>@<random-generated password>" as password. Since this is
technically a valid normal password, there is some ambiguity, but
bot passwords have a distintive format so it's easy to check and it is
extremely unlikely that someone would use the exact same format for
their normal password; and if the bot password login fails we can
simply retry it as a normal password, just in case.

Bug: T142304
Change-Id: Ib59a6fbe0e65d80d5e7d19ff37cec5e011c00539
2016-09-07 21:01:55 +00:00
..
data Remove unused conds.mustache test file 2016-08-01 17:16:52 -07:00
docs
includes Allow putting the app ID in the password for bot passwords 2016-09-07 21:01:55 +00:00
languages Only attempt to calculate the TTL in Language::sprintfDate if needed 2016-06-23 12:36:25 +02:00
maintenance Clean-up of MediaWikiTestCase::checkHasGzip() 2016-06-01 10:44:23 -07:00
mocks MediaHandlerFactory: Don't use any global state 2016-08-03 16:47:46 -07:00
skins Many more function case mismatches 2016-03-19 00:20:58 +00:00
specials Issue 301 redirects for Special:Search/searchterm 2016-08-18 15:31:45 -07:00
structure resourceloader: Add structure unit test to confirm messages exist 2016-08-17 20:07:43 +00:00
suites Autodiscover extension unittests 2016-08-04 09:49:43 -07:00
tests Add tests for MediawikiTestCase::setService stuff 2016-05-06 14:35:27 +00:00
bootstrap.php
LessFileCompilationTest.php resourceloader: Tidy up RL to simplify ResourceLoaderEditToolbarModule 2015-09-28 12:18:12 -07:00
Makefile
MediaWikiLangTestCase.php phpunit: Abstract user-lang override in MediaWikiTestCase 2016-03-09 16:55:50 +00:00
MediaWikiPHPUnitTestListener.php Wrap some long strings in tests/ 2015-09-26 21:01:59 +01:00
MediaWikiTestCase.php Merge "Make content handlers assemble content for search" 2016-08-04 15:54:36 +00:00
phpunit.php Remove $wgDisableAuthManager 2016-08-09 23:00:27 +00:00
README
ResourceLoaderTestCase.php resourceloader: Move queue formatting out of OutputPage 2016-08-08 12:23:09 -07:00
run-tests.bat
suite.xml PHPUnit: turn off verbose option 2016-05-19 03:48:22 -07:00
TODO

== MediaWiki PHPUnit Tests ==

The unit tests for MediaWiki are implemented using the PHPUnit testing
framework and require PHPUnit to run.


=== WARNING ===

Some of the unit tests are DESTRUCTIVE and WILL ALTER YOUR WIKI'S CONTENTS.

DO NOT RUN THESE TESTS ON A PRODUCTION SYSTEM OR ON ANY SYSTEM WHERE YOU NEED
TO RETAIN YOUR DATA.


== Installation ==

If you used composer to install MediaWiki's dependencies PHPUnit will already be available, unless
you explicitly specified the --no-dev flag during the install. In this case just run "composer update".

Otherwise follow the installation instructions in the
PHPUnit Manual at:

  https://phpunit.de/manual/current/en/installation.html


== Running tests ==

The tests are run from your operating system's command line.

Ensure that you are in the tests/phpunit directory of your MediaWiki
installation.


On Unix-like operating systems, the tests runs are controlled with a makefile.
Run command:

  make help

for a full list of options for running tests.


On Windows-family operating systems, run the 'run-tests.bat' batch file.


=== Writing tests ===

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

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