5 class UploadStashTest
extends MediaWikiTestCase
{
7 * @var Array of UploadStashTestUser
11 protected function setUp() {
14 // Setup a file for bug 29408
15 $this->bug29408File
= __DIR__
. '/bug29408';
16 file_put_contents( $this->bug29408File
, "\x00" );
19 'sysop' => new TestUser(
20 'Uploadstashtestsysop',
21 'Upload Stash Test Sysop',
22 'upload_stash_test_sysop@example.com',
25 'uploader' => new TestUser(
26 'Uploadstashtestuser',
27 'Upload Stash Test User',
28 'upload_stash_test_user@example.com',
34 protected function tearDown() {
35 if ( file_exists( $this->bug29408File
. "." ) ) {
36 unlink( $this->bug29408File
. "." );
39 if ( file_exists( $this->bug29408File
) ) {
40 unlink( $this->bug29408File
);
46 public function testBug29408() {
47 $this->setMwGlobals( 'wgUser', self
::$users['uploader']->user
);
49 $repo = RepoGroup
::singleton()->getLocalRepo();
50 $stash = new UploadStash( $repo );
52 // Throws exception caught by PHPUnit on failure
53 $file = $stash->stashFile( $this->bug29408File
);
54 // We'll never reach this point if we hit bug 29408
55 $this->assertTrue( true, 'Unrecognized file without extension' );
57 $stash->removeFile( $file->getFileKey() );
60 public function testValidRequest() {
61 $request = new FauxRequest( array( 'wpFileKey' => 'foo' ) );
62 $this->assertFalse( UploadFromStash
::isValidRequest( $request ), 'Check failure on bad wpFileKey' );
64 $request = new FauxRequest( array( 'wpSessionKey' => 'foo' ) );
65 $this->assertFalse( UploadFromStash
::isValidRequest( $request ), 'Check failure on bad wpSessionKey' );
67 $request = new FauxRequest( array( 'wpFileKey' => 'testkey-test.test' ) );
68 $this->assertTrue( UploadFromStash
::isValidRequest( $request ), 'Check good wpFileKey' );
70 $request = new FauxRequest( array( 'wpFileKey' => 'testkey-test.test' ) );
71 $this->assertTrue( UploadFromStash
::isValidRequest( $request ), 'Check good wpSessionKey' );
73 $request = new FauxRequest( array( 'wpFileKey' => 'testkey-test.test', 'wpSessionKey' => 'foo' ) );
74 $this->assertTrue( UploadFromStash
::isValidRequest( $request ), 'Check key precedence' );