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
74 lines
2.3 KiB
PHP
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;
|
|
}
|