Improve test coverage for HTML formatter code

… as well as some smaller improvements to the test coverage of other
code.

Change-Id: I5bec9c456fdc597c340dc0b515d23d837a7c5651
This commit is contained in:
Thiemo Kreuz 2022-02-03 12:45:27 +01:00
parent 1df51d8259
commit a81a8b52bc
2 changed files with 56 additions and 1 deletions

View file

@ -5,6 +5,9 @@ namespace MediaWiki\Extension\TemplateData;
use Language;
use MessageLocalizer;
/**
* @codeCoverageIgnore Trivial facade
*/
class TemplateDataMessageLocalizer implements MessageLocalizer {
/** @var Language */

View file

@ -9,7 +9,6 @@ use Wikimedia\TestingAccessWrapper;
* @group Database
* @covers \MediaWiki\Extension\TemplateData\TemplateDataBlob
* @covers \MediaWiki\Extension\TemplateData\TemplateDataCompressedBlob
* @covers \MediaWiki\Extension\TemplateData\TemplateDataHtmlFormatter
* @covers \MediaWiki\Extension\TemplateData\TemplateDataValidator
*/
class TemplateDataBlobTest extends MediaWikiIntegrationTestCase {
@ -38,6 +37,10 @@ class TemplateDataBlobTest extends MediaWikiIntegrationTestCase {
public function provideParse() {
$cases = [
[
'input' => '{',
'status' => '(templatedata-invalid-parse)'
],
[
'input' => '[]
',
@ -1466,11 +1469,60 @@ HTML
</tbody>
</table>
</section>
HTML
];
yield [
[ 'description' => 'Template docs', 'params' => [
'suggestedParam' => [
'label' => 'Label',
'description' => 'Param docs',
'aliases' => [ 'Alias1', 'Alias2' ],
'suggestedvalues' => [ 'Suggested1', 'Suggested2' ],
'suggested' => true,
'default' => 'Default docs',
'example' => 'Example docs',
'autovalue' => 'Auto value',
],
'deprecatedParam' => [ 'type' => 'date', 'deprecated' => true ],
] ],
<<<HTML
<section class="mw-templatedata-doc-wrap">
<header><p class="mw-templatedata-doc-desc">Template docs</p></header>
<table class="wikitable mw-templatedata-doc-params sortable">
<caption><p>(templatedata-doc-params)</p></caption>
<thead><tr><th colspan="2">(templatedata-doc-param-name)</th><th>(templatedata-doc-param-desc)</th><th>(templatedata-doc-param-type)</th><th>(templatedata-doc-param-status)</th></tr></thead>
<tbody>
<tr>
<th>Label</th>
<td class="mw-templatedata-doc-param-name"><code>suggestedParam</code>(word-separator)<code class="mw-templatedata-doc-param-alias">Alias1</code>(word-separator)<code class="mw-templatedata-doc-param-alias">Alias2</code></td>
<td class="">
<p>Param docs</p>
<dl>
<dt>(templatedata-doc-param-suggestedvalues)</dt><dd>(word-separator)<code class="mw-templatedata-doc-param-alias">Suggested1</code>(word-separator)<code class="mw-templatedata-doc-param-alias">Suggested2</code></dd>
<dt>(templatedata-doc-param-default)</dt><dd>Default docs</dd>
<dt>(templatedata-doc-param-example)</dt><dd>Example docs</dd>
<dt>(templatedata-doc-param-autovalue)</dt><dd><code>Auto value</code></dd>
</dl>
</td>
<td class="mw-templatedata-doc-param-type mw-templatedata-doc-muted">(templatedata-doc-param-type-unknown)</td>
<td class="mw-templatedata-doc-param-status-suggested" data-sort-value="1">(templatedata-doc-param-status-suggested)</td>
</tr>
<tr>
<th>deprecatedParam</th>
<td class="mw-templatedata-doc-param-name"><code>deprecatedParam</code></td>
<td class="mw-templatedata-doc-muted"><p>(templatedata-doc-param-desc-empty)</p><dl></dl></td>
<td class="mw-templatedata-doc-param-type">(templatedata-doc-param-type-date)</td>
<td class="mw-templatedata-doc-param-status-deprecated" data-sort-value="-1">(templatedata-doc-param-status-deprecated)</td>
</tr>
</tbody>
</table>
</section>
HTML
];
}
/**
* @covers \MediaWiki\Extension\TemplateData\TemplateDataHtmlFormatter
* @dataProvider provideGetHtml
*/
public function testGetHtml( array $data, $expected ) {