This changeset resumes work on T89432 and related tickets by porting an initial set of tests to the new unit test suite separated out in I69b92db3e70093570e05cc0a64c7780a278b321a. The tests were only ported if they worked immediately without requiring any changes other than changing the test case class to MediaWikiUnitTestCase and moving the test to the new suite. If a test failed for any reason (even trivial misconfiguration), it was NOT ported. With this change, the unit tests suite now consits of a total of 455 tests. As before, you can run these tests via the following command: $ composer phpunit:unit Bug: T84948 Bug: T89432 Bug: T87781 Change-Id: Ibb8175981092d7f41864e641cc3c118af70a5c76
83 lines
3 KiB
PHP
83 lines
3 KiB
PHP
<?php
|
|
|
|
class InstallDocFormatterTest extends \MediaWikiUnitTestCase {
|
|
/**
|
|
* @covers InstallDocFormatter
|
|
* @dataProvider provideDocFormattingTests
|
|
*/
|
|
public function testFormat( $expected, $unformattedText, $message = '' ) {
|
|
$this->assertEquals(
|
|
$expected,
|
|
InstallDocFormatter::format( $unformattedText ),
|
|
$message
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Provider for testFormat()
|
|
*/
|
|
public static function provideDocFormattingTests() {
|
|
# Format: (expected string, unformattedText string, optional message)
|
|
return [
|
|
# Escape some wikitext
|
|
[ 'Install <tag>', 'Install <tag>', 'Escaping <' ],
|
|
[ 'Install {{template}}', 'Install {{template}}', 'Escaping [[' ],
|
|
[ 'Install [[page]]', 'Install [[page]]', 'Escaping {{' ],
|
|
[ 'Install __TOC__', 'Install __TOC__', 'Escaping __' ],
|
|
[ 'Install ', "Install \r", 'Removing \r' ],
|
|
|
|
# Transform \t{1,2} into :{1,2}
|
|
[ ':One indentation', "\tOne indentation", 'Replacing a single \t' ],
|
|
[ '::Two indentations', "\t\tTwo indentations", 'Replacing 2 x \t' ],
|
|
|
|
# Transform 'T123' links
|
|
[
|
|
'<span class="config-plainlink">[https://phabricator.wikimedia.org/T123 T123]</span>',
|
|
'T123', 'Testing T123 links' ],
|
|
[
|
|
'bug <span class="config-plainlink">[https://phabricator.wikimedia.org/T123 T123]</span>',
|
|
'bug T123', 'Testing bug T123 links' ],
|
|
[
|
|
'(<span class="config-plainlink">[https://phabricator.wikimedia.org/T987654 T987654]</span>)',
|
|
'(T987654)', 'Testing (T987654) links' ],
|
|
|
|
# "Tabc" shouldn't work
|
|
[ 'Tfoobar', 'Tfoobar', "Don't match T followed by non-digits" ],
|
|
[ 'T!!fakefake!!', 'T!!fakefake!!', "Don't match T followed by non-digits" ],
|
|
|
|
# Transform 'bug 123' links
|
|
[
|
|
'<span class="config-plainlink">[https://bugzilla.wikimedia.org/123 bug 123]</span>',
|
|
'bug 123', 'Testing bug 123 links' ],
|
|
[
|
|
'(<span class="config-plainlink">[https://bugzilla.wikimedia.org/987654 bug 987654]</span>)',
|
|
'(bug 987654)', 'Testing (bug 987654) links' ],
|
|
|
|
# "bug abc" shouldn't work
|
|
[ 'bug foobar', 'bug foobar', "Don't match bug followed by non-digits" ],
|
|
[ 'bug !!fakefake!!', 'bug !!fakefake!!', "Don't match bug followed by non-digits" ],
|
|
|
|
# Transform '$wgFooBar' links
|
|
[
|
|
'<span class="config-plainlink">'
|
|
. '[https://www.mediawiki.org/wiki/Manual:$wgFooBar $wgFooBar]</span>',
|
|
'$wgFooBar', 'Testing basic $wgFooBar' ],
|
|
[
|
|
'<span class="config-plainlink">'
|
|
. '[https://www.mediawiki.org/wiki/Manual:$wgFooBar45 $wgFooBar45]</span>',
|
|
'$wgFooBar45', 'Testing $wgFooBar45 (with numbers)' ],
|
|
[
|
|
'<span class="config-plainlink">'
|
|
. '[https://www.mediawiki.org/wiki/Manual:$wgFoo_Bar $wgFoo_Bar]</span>',
|
|
'$wgFoo_Bar', 'Testing $wgFoo_Bar (with underscore)' ],
|
|
|
|
# Icky variables that shouldn't link
|
|
[
|
|
'$myAwesomeVariable',
|
|
'$myAwesomeVariable',
|
|
'Testing $myAwesomeVariable (not starting with $wg)'
|
|
],
|
|
[ '$()not!a&Var', '$()not!a&Var', 'Testing $()not!a&Var (obviously not a variable)' ],
|
|
];
|
|
}
|
|
}
|