}
public function run() {
+ # Until we find a way to store data in sessions, set leaveMessage to
+ # true unconditionally
+ $this->params['leaveMessage'] = true;
+ # Similar for ignorewarnings. This is not really a good fallback, but
+ # there is no easy way to get a wikitext formatted warning message to
+ # show to the user
+ $this->params['ignoreWarnings'] = true;
+
# Initialize this object and the upload object
$this->upload = new UploadFromUrl();
$this->upload->initialize(
$status = $this->upload->fetchFile();
if ( !$status->isOk() ) {
$this->leaveMessage( $status );
- return;
+ return true;
}
# Verify upload
if ( $result['status'] != UploadBase::OK ) {
$status = $this->upload->convertVerifyErrorToStatus( $result );
$this->leaveMessage( $status );
- return;
+ return true;
}
# Check warnings
if ( !$this->params['ignoreWarnings'] ) {
$warnings = $this->upload->checkWarnings();
- if ( $warnings ) {
+ if ( $warnings ) {
if ( $this->params['leaveMessage'] ) {
$this->user->leaveUserMessage(
wfMsg( 'upload-warning-subj' ),
}
// FIXME: stash in session
- return;
+ return true;
}
}
$this->user
);
$this->leaveMessage( $status );
+ return true;
+
}
/**
$this->doApiRequest( array(
'action' => 'upload',
'url' => 'http://www.example.com/test.png',
- 'filename' => 'Test.png',
+ 'filename' => 'UploadFromUrlTest.png',
'token' => $token,
), $data );
} catch ( UsageException $e ) {
'action' => 'upload',
'url' => 'http://bits.wikimedia.org/skins-1.5/common/images/poweredby_mediawiki_88x31.png',
'asyncdownload' => 1,
- 'filename' => 'Test.png',
+ 'filename' => 'UploadFromUrlTest.png',
'token' => $token,
), $data );
- $this->assertTrue( $data[0]['upload']['queued'], 'Job added' );
-
+ $this->assertEquals( $data[0]['upload']['result'], 'Queued', 'Queued upload' );
+
$job = Job::pop();
- $this->assertThat( $job, $this->isInstanceOf( 'UploadFromUrlJob' ),
- "Got Job Object" );
-
- $job = Job::pop_type( 'upload' );
- $this->assertFalse( $job );
+ $this->assertThat( $job, $this->isInstanceOf( 'UploadFromUrlJob' ), 'Queued upload inserted' );
}
/**
$wgUser->addGroup( 'users' );
$data = $this->doApiRequest( array(
'action' => 'upload',
- 'filename' => 'Test.png',
+ 'filename' => 'UploadFromUrlTest.png',
'url' => 'http://bits.wikimedia.org/skins-1.5/common/images/poweredby_mediawiki_88x31.png',
'asyncdownload' => 1,
'token' => $token,
$status = $job->run();
- $this->assertTrue( $status->isOk() );
+ $this->assertTrue( $status );
return $data;
}
$token = md5( $data[2]['wsToken'] ) . EDIT_TOKEN_SUFFIX;
$job = Job::pop();
- $this->assertFalse( $job );
+ $this->assertFalse( $job, 'Starting with an empty jobqueue' );
- $this->deleteFile( 'Test.png' );
+ //$this->deleteFile( 'UploadFromUrlTest.png' );
$wgUser->addGroup( 'users' );
$data = $this->doApiRequest( array(
'action' => 'upload',
- 'filename' => 'Test.png',
+ 'filename' => 'UploadFromUrlTest.png',
'url' => 'http://bits.wikimedia.org/skins-1.5/common/images/poweredby_mediawiki_88x31.png',
'ignorewarnings' => true,
'token' => $token,
* @depends testDoDownload
*/
function testVerifyDownload( $data ) {
- $t = Title::newFromText( "Test.png", NS_FILE );
+ $t = Title::newFromText( "UploadFromUrlTest.png", NS_FILE );
$this->assertTrue( $t->exists() );
- $this->deleteFile( 'Test.png' );
+ $this->deleteFile( 'UploadFromUrlTest.png' );
}
/**
*
*/
function deleteFile( $name ) {
-
$t = Title::newFromText( $name, NS_FILE );
$this->assertTrue($t->exists(), "File '$name' exists");