require_once( dirname( dirname( __FILE__ ) ) . "/deleteArchivedRevisions.inc" );
class nullClass {
- public function handleOutput(){}
- public function purgeRedundantText(){}
+ public function handleOutput() { }
+ public function purgeRedundantText() { }
}
class UploadFromUrlTest extends ApiSetup {
function setUp() {
- global $wgEnableUploads, $wgLocalFileRepo;
+ global $wgEnableUploads, $wgLocalFileRepo, $wgAllowCopyUploads;
$wgEnableUploads = true;
+ $wgAllowCopyUploads = true;
parent::setup();
- $wgLocalFileRepo = array(
- 'class' => 'LocalRepo',
- 'name' => 'local',
- 'directory' => 'test-repo',
- 'url' => 'http://example.com/images',
- 'hashLevels' => 2,
- 'transformVia404' => false,
- );
ini_set( 'log_errors', 1 );
ini_set( 'error_reporting', 1 );
}
function testClearQueue() {
- while ( $job = Job::pop() ) {}
- $this->assertFalse($job);
+ while ( $job = Job::pop() ) { }
+ $this->assertFalse( $job );
}
function testLogin() {
}
$this->assertTrue( $exception, "Got exception" );
- $wgUser->removeGroup('sysop');
+ $wgUser->removeGroup( 'sysop' );
$exception = false;
try {
$this->doApiRequest( array(
}
$this->assertTrue( $exception, "Got exception" );
- $wgUser->addGroup('*');
- $wgUser->addGroup('sysop');
+ $wgUser->addGroup( '*' );
+ $wgUser->addGroup( 'sysop' );
$exception = false;
$data = $this->doApiRequest( array(
'action' => 'upload',
'url' => 'http://bits.wikimedia.org/skins-1.5/common/images/poweredby_mediawiki_88x31.png',
+ 'asyncdownload' => 1,
'filename' => 'Test.png',
'token' => $token,
), $data );
- $this->assertThat( $data[0]['upload'], $this->isInstanceOf( 'Status' ),
- "Got Status Object" );
- $this->assertTrue( $data[0]['upload']->isOk(), 'Job added');
+ $this->assertTrue( $data[0]['upload']['queued'], 'Job added' );
$job = Job::pop();
$this->assertThat( $job, $this->isInstanceOf( 'UploadFromUrlJob' ),
$data[2]['wsEditToken'] = $data[2]['wsToken'];
$token = md5( $data[2]['wsToken'] ) . EDIT_TOKEN_SUFFIX;
- $wgUser->addGroup('users');
+ $wgUser->addGroup( 'users' );
$data = $this->doApiRequest( array(
'action' => 'upload',
'filename' => 'Test.png',
'url' => 'http://bits.wikimedia.org/skins-1.5/common/images/poweredby_mediawiki_88x31.png',
+ 'asyncdownload' => 1,
'token' => $token,
), $data );
$job = Job::pop();
- $this->assertEquals( 'UploadFromUrlJob', get_class($job) );
+ $this->assertEquals( 'UploadFromUrlJob', get_class( $job ) );
+
+ $status = $job->run();
- $status = $job->run();
$this->assertTrue( $status->isOk() );
return $data;
}
+ /**
+ * @depends testLogin
+ */
+ function testSyncDownload( $data ) {
+ global $wgUser;
+ $data[2]['wsEditToken'] = $data[2]['wsToken'];
+ $token = md5( $data[2]['wsToken'] ) . EDIT_TOKEN_SUFFIX;
+
+ $job = Job::pop();
+ $this->assertFalse( $job );
+
+ self::deleteFile( 'Test.png' );
+
+ $wgUser->addGroup( 'users' );
+ $data = $this->doApiRequest( array(
+ 'action' => 'upload',
+ 'filename' => 'Test.png',
+ 'url' => 'http://bits.wikimedia.org/skins-1.5/common/images/poweredby_mediawiki_88x31.png',
+ 'ignorewarnings' => true,
+ 'token' => $token,
+ ), $data );
+
+ $job = Job::pop();
+ $this->assertFalse( $job );
+
+ $this->assertEquals( 'Success', $data[0]['upload']['result'] );
+
+ return $data;
+ }
+
/**
* @depends testDoDownload
*/
function testVerifyDownload( $data ) {
- $t = Title::newFromText("Test.png", NS_FILE);
+ $t = Title::newFromText( "Test.png", NS_FILE );
- $this->assertTrue($t->exists());
+ $this->assertTrue( $t->exists() );
+
+ self::deleteFile( 'Test.png' );
+ }
+
+ /**
+ *
+ */
+ function deleteFile( $name ) {
+
+ $t = Title::newFromText( $name, NS_FILE );
+ $this->assertTrue($t->exists(), "File '$name' exists");
+
+ if ( $t->exists() ) {
+ $file = wfFindFile( $name, array( 'ignoreRedirect' => true ) );
+ $empty = "";
+ $status = FileDeleteForm::doDelete( $t, $file, $empty, "none", true );
+ $a = new Article ( $t );
+ $a->doDeleteArticle( "testing" );
+ }
+ $t = Title::newFromText( $name, NS_FILE );
+
+ $this->assertFalse($t->exists(), "File '$name' was deleted");
}
-}
+ }