This property shouldn't be needed in modern code, where most things can use Authority. So much so because TestUser adds a dependency on the database, but many tests that use TestUser don't even need the database. ApiTestCase, in particular, sets this property in setUp, thus adding a database dependency to all API tests, including those that don't need users or the database at all. Deprecate the property and replace existing usages in core. The one in ApiTestCase is much harder to migrate, but this patch replaces the array with an anonymous ArrayAccess class to allow lazy initialization and remove DB dependencies. Bug: T155147 Change-Id: I59c4ed1f6a7572d3a92387b15b8e56625bc376a2
59 lines
1.4 KiB
PHP
59 lines
1.4 KiB
PHP
<?php
|
|
|
|
use MediaWiki\Request\FauxRequest;
|
|
|
|
/**
|
|
* @group Database
|
|
*
|
|
* @covers UploadStash
|
|
*/
|
|
class UploadStashTest extends MediaWikiIntegrationTestCase {
|
|
/**
|
|
* @var string
|
|
*/
|
|
private $tmpFile;
|
|
|
|
protected function setUp(): void {
|
|
parent::setUp();
|
|
|
|
$this->tmpFile = $this->getNewTempFile();
|
|
file_put_contents( $this->tmpFile, "\x00" );
|
|
}
|
|
|
|
public static function provideInvalidRequests() {
|
|
return [
|
|
'Check failure on bad wpFileKey' =>
|
|
[ new FauxRequest( [ 'wpFileKey' => 'foo' ] ) ],
|
|
'Check failure on bad wpSessionKey' =>
|
|
[ new FauxRequest( [ 'wpSessionKey' => 'foo' ] ) ],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @dataProvider provideInvalidRequests
|
|
*/
|
|
public function testValidRequestWithInvalidRequests( $request ) {
|
|
$this->assertFalse( UploadFromStash::isValidRequest( $request ) );
|
|
}
|
|
|
|
public static function provideValidRequests() {
|
|
return [
|
|
'Check good wpFileKey' =>
|
|
[ new FauxRequest( [ 'wpFileKey' => 'testkey-test.test' ] ) ],
|
|
'Check good wpSessionKey' =>
|
|
[ new FauxRequest( [ 'wpFileKey' => 'testkey-test.test' ] ) ],
|
|
'Check key precedence' =>
|
|
[ new FauxRequest( [
|
|
'wpFileKey' => 'testkey-test.test',
|
|
'wpSessionKey' => 'foo'
|
|
] ) ],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @dataProvider provideValidRequests
|
|
*/
|
|
public function testValidRequestWithValidRequests( $request ) {
|
|
$this->assertTrue( UploadFromStash::isValidRequest( $request ) );
|
|
}
|
|
}
|