wiki.techinc.nl/tests/phpunit/includes/htmlform/HTMLFormTest.php
Gergő Tisza 499af9ccbe
Rename HTMLForm::[get|set|add]*Text() methods
Rename HTMLForm::[get|set|add][Pre|Post|Header|Footer]Text() to
HTMLForm::[get|set|add][Pre|Post|Header|Footer]Html() and
deprecate the old methods. Their arguments are rendered as raw
HTML so the old name was misleading.

Some of these are marked as stable to override and theoretically
the renaming could cause problems if callers are updated to the
new name while the overriding class is still using the old name,
but the only case known to codesearch is OOUIHTMLForm which is
also updated here.

Bug: T290771
Change-Id: I2c269eb6ab2b320fa2eef4ee8a226e96ad05fbe2
2022-01-02 21:51:48 -08:00

83 lines
2.3 KiB
PHP

<?php
/**
* @covers HTMLForm
*
* @license GPL-2.0-or-later
* @author Gergő Tisza
*/
class HTMLFormTest extends MediaWikiIntegrationTestCase {
private function newInstance() {
$context = new RequestContext();
$out = new OutputPage( $context );
$out->setTitle( Title::newMainPage() );
$context->setOutput( $out );
$form = new HTMLForm( [], $context );
$form->setTitle( Title::newFromText( 'Foo' ) );
return $form;
}
public function testGetHTML_empty() {
$form = $this->newInstance();
$form->prepareForm();
$html = $form->getHTML( false );
$this->assertStringStartsWith( '<form ', $html );
}
public function testGetHTML_noPrepare() {
$form = $this->newInstance();
$this->expectException( LogicException::class );
$form->getHTML( false );
}
public function testAutocompleteDefaultsToNull() {
$form = $this->newInstance();
$this->assertStringNotContainsString( 'autocomplete', $form->wrapForm( '' ) );
}
public function testAutocompleteWhenSetToNull() {
$form = $this->newInstance();
$form->setAutocomplete( null );
$this->assertStringNotContainsString( 'autocomplete', $form->wrapForm( '' ) );
}
public function testAutocompleteWhenSetToFalse() {
$form = $this->newInstance();
// Previously false was used instead of null to indicate the attribute should not be set
$form->setAutocomplete( false );
$this->assertStringNotContainsString( 'autocomplete', $form->wrapForm( '' ) );
}
public function testAutocompleteWhenSetToOff() {
$form = $this->newInstance();
$form->setAutocomplete( 'off' );
$this->assertStringContainsString( ' autocomplete="off"', $form->wrapForm( '' ) );
}
public function testGetPreText() {
$preText = 'TEST';
$form = $this->newInstance();
$form->setPreText( $preText );
$this->assertSame( $preText, $form->getPreText() );
}
public function testGetPreHtml() {
$preHtml = 'TEST';
$form = $this->newInstance();
$form->setPreHtml( $preHtml );
$this->assertSame( $preHtml, $form->getPreHtml() );
}
public function testGetErrorsOrWarningsWithRawParams() {
$form = $this->newInstance();
$msg = new RawMessage( 'message with $1' );
$msg->rawParams( '<a href="raw">params</a>' );
$status = Status::newFatal( $msg );
$result = $form->getErrorsOrWarnings( $status, 'error' );
$this->assertStringContainsString( 'message with <a href="raw">params</a>', $result );
}
}