wiki.techinc.nl/tests/phpunit/integration/includes/HTMLForm/Field/HTMLButtonFieldTest.php
James D. Forrester f784a12c3d HTMLButtonFieldTest: Test regular HTML output
Bug: T359166
Change-Id: I3b11f4389ed135d85bd0dd4148b8c0a0b1eecc9e
2024-04-08 16:42:58 -04:00

187 lines
7.8 KiB
PHP

<?php
namespace MediaWiki\Tests\Integration\HTMLForm\Field;
use MediaWiki\Tests\Integration\HTMLForm\HTMLFormFieldTestCase;
/**
* @covers MediaWiki\HTMLForm\Field\HTMLButtonField
*/
class HTMLButtonFieldTest extends HTMLFormFieldTestCase {
protected $className = 'HTMLButtonField';
public static function provideInputHtml() {
yield 'Basic button' => [
[
'buttonlabel' => 'Click me',
],
'',
'<button class="mw-htmlform-submit" id="mw-input-testfield" type="button" name="testfield">Click me</button>'
];
yield 'Button with CSS class' => [
[
'buttonlabel' => 'Click me',
'cssclass' => 'my-button',
],
'',
'<button class="mw-htmlform-submit my-button" id="mw-input-testfield" type="button" name="testfield">Click me</button>'
];
yield 'Primary progressive button' => [
[
'buttonlabel' => 'Click me',
'flags' => [ 'primary', 'progressive' ]
],
'',
'<button class="mw-htmlform-submit mw-htmlform-primary mw-htmlform-progressive" id="mw-input-testfield" type="button" name="testfield">Click me</button>'
];
yield 'Destructive button' => [
[
'buttonlabel' => 'Click me',
'flags' => [ 'destructive' ]
],
'',
'<button class="mw-htmlform-submit mw-htmlform-destructive" id="mw-input-testfield" type="button" name="testfield">Click me</button>'
];
yield 'Quiet button with CSS class' => [
[
'buttonlabel' => 'Click me',
'cssclass' => 'my-button',
'flags' => [ 'quiet' ]
],
'',
'<button class="mw-htmlform-submit my-button mw-htmlform-quiet" id="mw-input-testfield" type="button" name="testfield">Click me</button>'
];
yield 'Disabled button' => [
[
'buttonlabel' => 'Click me',
'disabled' => true
],
'',
'<button class="mw-htmlform-submit" id="mw-input-testfield" type="button" name="testfield" disabled="">Click me</button>'
];
}
public static function provideInputCodex() {
yield 'Basic button' => [
[
'buttonlabel' => 'Click me',
],
'',
false,
'<button class="mw-htmlform-submit cdx-button" id="mw-input-testfield" type="button" name="testfield">Click me</button>'
];
yield 'Button with CSS class' => [
[
'buttonlabel' => 'Click me',
'cssclass' => 'my-button',
],
'',
false,
'<button class="mw-htmlform-submit cdx-button my-button" id="mw-input-testfield" type="button" name="testfield">Click me</button>'
];
yield 'Primary progressive button' => [
[
'buttonlabel' => 'Click me',
'flags' => [ 'primary', 'progressive' ]
],
'',
false,
'<button class="mw-htmlform-submit cdx-button cdx-button--weight-primary cdx-button--action-progressive" id="mw-input-testfield" type="button" name="testfield">Click me</button>'
];
yield 'Destructive button' => [
[
'buttonlabel' => 'Click me',
'flags' => [ 'destructive' ]
],
'',
false,
'<button class="mw-htmlform-submit cdx-button cdx-button--action-destructive" id="mw-input-testfield" type="button" name="testfield">Click me</button>'
];
yield 'Quiet button with CSS class' => [
[
'buttonlabel' => 'Click me',
'cssclass' => 'my-button',
'flags' => [ 'quiet' ]
],
'',
false,
'<button class="mw-htmlform-submit cdx-button my-button cdx-button--weight-quiet" id="mw-input-testfield" type="button" name="testfield">Click me</button>'
];
yield 'Disabled button' => [
[
'buttonlabel' => 'Click me',
'disabled' => true
],
'',
false,
'<button class="mw-htmlform-submit cdx-button" id="mw-input-testfield" type="button" name="testfield" disabled="">Click me</button>'
];
}
public static function provideInputOOUI() {
yield 'Basic button' => [
[
'buttonlabel' => 'Click me',
],
'',
"<span id='mw-input-testfield' class='mw-htmlform-submit oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-buttonElement oo-ui-buttonElement-framed oo-ui-labelElement oo-ui-buttonInputWidget'><button type='button' tabindex='0' name='testfield' value='' class='oo-ui-inputWidget-input oo-ui-buttonElement-button'><span class='oo-ui-iconElement-icon oo-ui-iconElement-noIcon'></span><span class='oo-ui-labelElement-label'>Click me</span><span class='oo-ui-indicatorElement-indicator oo-ui-indicatorElement-noIndicator'></span></button></span>"
];
yield 'Button with CSS class' => [
[
'buttonlabel' => 'Click me',
'cssclass' => 'my-button',
],
'',
"<span id='mw-input-testfield' class='mw-htmlform-submit my-button oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-buttonElement oo-ui-buttonElement-framed oo-ui-labelElement oo-ui-buttonInputWidget'><button type='button' tabindex='0' name='testfield' value='' class='oo-ui-inputWidget-input oo-ui-buttonElement-button'><span class='oo-ui-iconElement-icon oo-ui-iconElement-noIcon'></span><span class='oo-ui-labelElement-label'>Click me</span><span class='oo-ui-indicatorElement-indicator oo-ui-indicatorElement-noIndicator'></span></button></span>"
];
yield 'Primary progressive button' => [
[
'buttonlabel' => 'Click me',
'flags' => [ 'primary', 'progressive' ]
],
'',
"<span id='mw-input-testfield' class='mw-htmlform-submit oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-buttonElement oo-ui-buttonElement-framed oo-ui-labelElement oo-ui-flaggedElement-primary oo-ui-flaggedElement-progressive oo-ui-buttonInputWidget'><button type='button' tabindex='0' name='testfield' value='' class='oo-ui-inputWidget-input oo-ui-buttonElement-button'><span class='oo-ui-iconElement-icon oo-ui-iconElement-noIcon'></span><span class='oo-ui-labelElement-label'>Click me</span><span class='oo-ui-indicatorElement-indicator oo-ui-indicatorElement-noIndicator'></span></button></span>"
];
yield 'Destructive button' => [
[
'buttonlabel' => 'Click me',
'flags' => [ 'destructive' ]
],
'',
"<span id='mw-input-testfield' class='mw-htmlform-submit oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-buttonElement oo-ui-buttonElement-framed oo-ui-labelElement oo-ui-flaggedElement-destructive oo-ui-buttonInputWidget'><button type='button' tabindex='0' name='testfield' value='' class='oo-ui-inputWidget-input oo-ui-buttonElement-button'><span class='oo-ui-iconElement-icon oo-ui-iconElement-noIcon'></span><span class='oo-ui-labelElement-label'>Click me</span><span class='oo-ui-indicatorElement-indicator oo-ui-indicatorElement-noIndicator'></span></button></span>"
];
yield 'Quiet button with CSS class' => [
[
'buttonlabel' => 'Click me',
'cssclass' => 'my-button',
'flags' => [ 'quiet' ]
],
'',
"<span id='mw-input-testfield' class='mw-htmlform-submit my-button oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-buttonElement oo-ui-buttonElement-framed oo-ui-labelElement oo-ui-flaggedElement-quiet oo-ui-buttonInputWidget'><button type='button' tabindex='0' name='testfield' value='' class='oo-ui-inputWidget-input oo-ui-buttonElement-button'><span class='oo-ui-iconElement-icon oo-ui-iconElement-noIcon'></span><span class='oo-ui-labelElement-label'>Click me</span><span class='oo-ui-indicatorElement-indicator oo-ui-indicatorElement-noIndicator'></span></button></span>"
];
yield 'Disabled button' => [
[
'buttonlabel' => 'Click me',
'disabled' => true
],
'',
"<span id='mw-input-testfield' aria-disabled='true' class='mw-htmlform-submit oo-ui-widget oo-ui-widget-disabled oo-ui-inputWidget oo-ui-buttonElement oo-ui-buttonElement-framed oo-ui-labelElement oo-ui-buttonInputWidget'><button type='button' tabindex='-1' aria-disabled='true' name='testfield' disabled='disabled' value='' class='oo-ui-inputWidget-input oo-ui-buttonElement-button'><span class='oo-ui-iconElement-icon oo-ui-iconElement-noIcon'></span><span class='oo-ui-labelElement-label'>Click me</span><span class='oo-ui-indicatorElement-indicator oo-ui-indicatorElement-noIndicator'></span></button></span>"
];
}
}