wiki.techinc.nl/tests/phpunit/includes/auth/ButtonAuthenticationRequestTest.php
Umherirrender e44aee1f74 auth: Add missing documentation to class properties
Add doc-typehints to class properties found by the PropertyDocumentation
sniff to improve the documentation.

Once the sniff is enabled it avoids that new code is missing type
declarations. This is focused on documentation and does not change code.

Change-Id: Ib6081f5519d2294bb14f81bf399f9c45315f2b69
2024-09-01 11:27:45 +02:00

74 lines
2.3 KiB
PHP

<?php
namespace MediaWiki\Tests\Auth;
use MediaWiki\Auth\ButtonAuthenticationRequest;
/**
* @group AuthManager
* @covers \MediaWiki\Auth\ButtonAuthenticationRequest
*/
class ButtonAuthenticationRequestTest extends AuthenticationRequestTestCase {
protected function getInstance( array $args = [] ) {
$data = array_intersect_key( $args, [ 'name' => 1, 'label' => 1, 'help' => 1 ] );
if ( $args['name'] === 'foo' ) {
return ButtonAuthenticationRequestForLoadFromSubmission::__set_state( $data );
}
return ButtonAuthenticationRequest::__set_state( $data );
}
public static function provideGetFieldInfo() {
return [
[ [ 'name' => 'foo', 'label' => 'bar', 'help' => 'baz' ] ]
];
}
public static function provideLoadFromSubmission() {
return [
'Empty request' => [
[ 'name' => 'foo', 'label' => 'bar', 'help' => 'baz' ],
[],
false
],
'Button present' => [
[ 'name' => 'foo', 'label' => 'bar', 'help' => 'baz' ],
[ 'foo' => 'Foobar' ],
[ 'name' => 'foo', 'label' => 'bar', 'help' => 'baz', 'foo' => true ]
],
];
}
public function testGetUniqueId() {
$req = new ButtonAuthenticationRequest( 'foo', wfMessage( 'bar' ), wfMessage( 'baz' ) );
$this->assertSame(
'MediaWiki\\Auth\\ButtonAuthenticationRequest:foo', $req->getUniqueId()
);
}
public function testGetRequestByName() {
$reqs = [];
$reqs['testOne'] = new ButtonAuthenticationRequest(
'foo', wfMessage( 'msg' ), wfMessage( 'help' )
);
$reqs[] = new ButtonAuthenticationRequest( 'bar', wfMessage( 'msg1' ), wfMessage( 'help1' ) );
$reqs[] = new ButtonAuthenticationRequest( 'bar', wfMessage( 'msg2' ), wfMessage( 'help2' ) );
$reqs['testSub'] =
new ButtonAuthenticationRequest( 'subclass', wfMessage( 'msg3' ), wfMessage( 'help3' ) );
$this->assertNull( ButtonAuthenticationRequest::getRequestByName( $reqs, 'missing' ) );
$this->assertSame(
$reqs['testOne'], ButtonAuthenticationRequest::getRequestByName( $reqs, 'foo' )
);
$this->assertNull( ButtonAuthenticationRequest::getRequestByName( $reqs, 'bar' ) );
$this->assertSame(
$reqs['testSub'], ButtonAuthenticationRequest::getRequestByName( $reqs, 'subclass' )
);
}
}
// Dynamic properties from the testLoadFromSubmission not working in php8.2
class ButtonAuthenticationRequestForLoadFromSubmission extends ButtonAuthenticationRequest {
/** @var string */
public $foo;
}