221 lines
6.0 KiB
PHP
221 lines
6.0 KiB
PHP
<?php
|
|
|
|
namespace SMW\Tests\MediaWiki\Renderer;
|
|
|
|
use SMW\MediaWiki\Renderer\HtmlFormRenderer;
|
|
use SMW\Tests\Utils\UtilityFactory;
|
|
|
|
/**
|
|
* @covers \SMW\MediaWiki\Renderer\HtmlFormRenderer
|
|
* @group semantic-mediawiki
|
|
*
|
|
* @license GPL-2.0-or-later
|
|
* @since 2.1
|
|
*
|
|
* @author mwjames
|
|
*/
|
|
class HtmlFormRendererTest extends \PHPUnit\Framework\TestCase {
|
|
|
|
private $stringValidator;
|
|
|
|
protected function setUp(): void {
|
|
parent::setUp();
|
|
|
|
$this->stringValidator = UtilityFactory::getInstance()->newValidatorFactory()->newStringValidator();
|
|
}
|
|
|
|
public function testCanConstruct() {
|
|
$title = $this->getMockBuilder( '\MediaWiki\Title\Title' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$messageBuilder = $this->getMockBuilder( '\SMW\MediaWiki\MessageBuilder' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$this->assertInstanceOf(
|
|
'\SMW\MediaWiki\Renderer\HtmlFormRenderer',
|
|
new HtmlFormRenderer( $title, $messageBuilder )
|
|
);
|
|
}
|
|
|
|
public function testGetMessageBuilder() {
|
|
$title = $this->getMockBuilder( '\MediaWiki\Title\Title' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$messageBuilder = $this->getMockBuilder( '\SMW\MediaWiki\MessageBuilder' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$instance = new HtmlFormRenderer( $title, $messageBuilder );
|
|
|
|
$this->assertSame(
|
|
$messageBuilder,
|
|
$instance->getMessageBuilder()
|
|
);
|
|
}
|
|
|
|
public function testGetForm() {
|
|
$title = $this->getMockBuilder( '\MediaWiki\Title\Title' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$message = $this->getMockBuilder( '\MediaWiki\Message\Message' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$message->expects( $this->any() )
|
|
->method( 'title' )
|
|
->willReturnSelf();
|
|
|
|
$message->expects( $this->any() )
|
|
->method( 'numParams' )
|
|
->willReturnSelf();
|
|
|
|
$message->expects( $this->any() )
|
|
->method( 'rawParams' )
|
|
->willReturnSelf();
|
|
|
|
$message->expects( $this->any() )
|
|
->method( 'text' )
|
|
->willReturn( 'SomeText' );
|
|
|
|
$messageBuilder = $this->getMockBuilder( '\SMW\MediaWiki\MessageBuilder' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$messageBuilder->expects( $this->any() )
|
|
->method( 'getMessage' )
|
|
->willReturn( $message );
|
|
|
|
$instance = new HtmlFormRenderer( $title, $messageBuilder );
|
|
|
|
$instance
|
|
->setName( 'SomeForm' )
|
|
->withFieldset()
|
|
->addParagraph( 'SomeDescription' )
|
|
->addQueryParameter( 'SomeQueryParameter', 'SomeQueryValue' )
|
|
->addPaging( 10, 0, 5 )
|
|
->addHorizontalRule()
|
|
->addInputField( 'SomeInputFieldLabel', 'foo', 'Foo', 'FooId', 333 )
|
|
->addLineBreak()
|
|
->addNonBreakingSpace()
|
|
->addInputField( 'AnotherInputFieldLabel', 'AnotherInputFieldName', 'AnotherInputFieldValue' )
|
|
->addSubmitButton( 'FindFoo' );
|
|
|
|
$expected = [
|
|
'form id="smw-form-SomeForm" name="SomeForm" method="get"',
|
|
'<p class="smw-form-paragraph">SomeDescription</p>',
|
|
'input name="foo" size="333" value="Foo" id="FooId"',
|
|
'input name="AnotherInputFieldName" size="20" value="AnotherInputFieldValue" id="AnotherInputFieldName"',
|
|
'input type="submit" value="FindFoo"',
|
|
// '<br /> ' MW 1.27 <br/>
|
|
];
|
|
|
|
$this->stringValidator->assertThatStringContains(
|
|
$expected,
|
|
$instance->getForm()
|
|
);
|
|
}
|
|
|
|
public function testOptionsSelecList() {
|
|
$title = $this->getMockBuilder( '\MediaWiki\Title\Title' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$message = $this->getMockBuilder( '\MediaWiki\Message\Message' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$message->expects( $this->any() )
|
|
->method( 'text' )
|
|
->willReturn( 'SomeText' );
|
|
|
|
$messageBuilder = $this->getMockBuilder( '\SMW\MediaWiki\MessageBuilder' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$messageBuilder->expects( $this->any() )
|
|
->method( 'getMessage' )
|
|
->willReturn( $message );
|
|
|
|
$instance = new HtmlFormRenderer( $title, $messageBuilder );
|
|
|
|
$instance
|
|
->setName( 'optionsSelecListForm' )
|
|
->withFieldset()
|
|
->setMethod( 'isNeithergetNorPostMethodUseDefaultInstead' )
|
|
->addOptionSelectList(
|
|
'optionlistLabel',
|
|
'optionlistName',
|
|
'b',
|
|
[ 'f' => 'foo', 'b' => 'bar' ],
|
|
'optionslistId' );
|
|
|
|
$expected = [
|
|
'form id="smw-form-optionsSelecListForm" name="optionsSelecListForm" method="get"',
|
|
'<fieldset id="smw-form-fieldset-optionsSelecListForm">',
|
|
'<label for="optionslistId">optionlistLabel</label> ',
|
|
'<select name="optionlistName" id="optionslistId" class="smw-form-select">',
|
|
'<option value="b" selected="">bar</option>',
|
|
'<option value="f">foo</option>'
|
|
];
|
|
|
|
$this->stringValidator->assertThatStringContains(
|
|
$expected,
|
|
$instance->getForm()
|
|
);
|
|
}
|
|
|
|
public function testCheckbox() {
|
|
$title = $this->getMockBuilder( '\MediaWiki\Title\Title' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$message = $this->getMockBuilder( '\MediaWiki\Message\Message' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$message->expects( $this->any() )
|
|
->method( 'text' )
|
|
->willReturn( 'SomeText' );
|
|
|
|
$messageBuilder = $this->getMockBuilder( '\SMW\MediaWiki\MessageBuilder' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$messageBuilder->expects( $this->any() )
|
|
->method( 'getMessage' )
|
|
->willReturn( $message );
|
|
|
|
$instance = new HtmlFormRenderer( $title, $messageBuilder );
|
|
|
|
$instance
|
|
->setName( 'checkboxForm' )
|
|
->addHeader( 'invalidLevel', 'someHeader' )
|
|
->withFieldset()
|
|
->setMethod( 'post' )
|
|
->setActionUrl( 'http://example.org/foo' )
|
|
->addCheckbox(
|
|
'checkboxLabel',
|
|
'checkboxName',
|
|
true,
|
|
'checkBoxId' );
|
|
|
|
$expected = [
|
|
'<form id="smw-form-checkboxForm" name="checkboxForm" method="post" action="http://example.org/foo">',
|
|
'<h2>someHeader</h2>',
|
|
'<fieldset id="smw-form-fieldset-checkboxForm">',
|
|
'<input name="checkboxName" type="checkbox" value="1" checked="checked" id="checkboxName" class="smw-form-checkbox" />',
|
|
'<label for="checkboxName" class="smw-form-checkbox">checkboxLabel</label>'
|
|
];
|
|
|
|
$this->stringValidator->assertThatStringContains(
|
|
$expected,
|
|
$instance->getForm()
|
|
);
|
|
}
|
|
|
|
}
|