From c7e3a8915d63f376c09193b31e949f0c777acadb Mon Sep 17 00:00:00 2001 From: Bryan Tong Minh Date: Thu, 29 Jul 2010 18:39:42 +0000 Subject: [PATCH] Fix UploadFromUrl test cases, UploadFromUrlJob::run return value, and disable broken features in UploadFromUrlJob * Use a more specific filename in UploadFromUrlTest and fix some assertions. * Return boolean from UploadFromUrlJob::run * Force ignorewarnings and leavemessage in UploadFromUrlJob --- includes/job/UploadFromUrlJob.php | 18 +++++++++++---- maintenance/tests/UploadFromUrlTest.php | 29 ++++++++++--------------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/includes/job/UploadFromUrlJob.php b/includes/job/UploadFromUrlJob.php index d5225b1113..675b144c94 100644 --- a/includes/job/UploadFromUrlJob.php +++ b/includes/job/UploadFromUrlJob.php @@ -18,6 +18,14 @@ class UploadFromUrlJob extends Job { } 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( @@ -31,7 +39,7 @@ class UploadFromUrlJob extends Job { $status = $this->upload->fetchFile(); if ( !$status->isOk() ) { $this->leaveMessage( $status ); - return; + return true; } # Verify upload @@ -39,13 +47,13 @@ class UploadFromUrlJob extends Job { 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' ), @@ -59,7 +67,7 @@ class UploadFromUrlJob extends Job { } // FIXME: stash in session - return; + return true; } } @@ -71,6 +79,8 @@ class UploadFromUrlJob extends Job { $this->user ); $this->leaveMessage( $status ); + return true; + } /** diff --git a/maintenance/tests/UploadFromUrlTest.php b/maintenance/tests/UploadFromUrlTest.php index b1567aeba4..1d870ef7bc 100644 --- a/maintenance/tests/UploadFromUrlTest.php +++ b/maintenance/tests/UploadFromUrlTest.php @@ -112,7 +112,7 @@ class UploadFromUrlTest extends ApiTestSetup { $this->doApiRequest( array( 'action' => 'upload', 'url' => 'http://www.example.com/test.png', - 'filename' => 'Test.png', + 'filename' => 'UploadFromUrlTest.png', 'token' => $token, ), $data ); } catch ( UsageException $e ) { @@ -128,18 +128,14 @@ class UploadFromUrlTest extends ApiTestSetup { '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' ); } /** @@ -153,7 +149,7 @@ class UploadFromUrlTest extends ApiTestSetup { $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, @@ -164,7 +160,7 @@ class UploadFromUrlTest extends ApiTestSetup { $status = $job->run(); - $this->assertTrue( $status->isOk() ); + $this->assertTrue( $status ); return $data; } @@ -178,14 +174,14 @@ class UploadFromUrlTest extends ApiTestSetup { $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, @@ -203,18 +199,17 @@ class UploadFromUrlTest extends ApiTestSetup { * @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"); -- 2.20.1