From 9b07d3058fabb29d80c7022f4f87a469650d1505 Mon Sep 17 00:00:00 2001 From: "Mark A. Hershberger" Date: Tue, 9 Feb 2010 09:41:15 +0000 Subject: [PATCH] follow-up r61355 a bit more, still have several bits to fix (e.g. json handling) --- includes/upload/UploadFromChunks.php | 9 +++++---- maintenance/tests/UploadFromChunksTest.php | 15 +++++++++++++-- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/includes/upload/UploadFromChunks.php b/includes/upload/UploadFromChunks.php index 713ba13bee..d23571050e 100644 --- a/includes/upload/UploadFromChunks.php +++ b/includes/upload/UploadFromChunks.php @@ -40,6 +40,8 @@ class UploadFromChunks extends UploadBase { public function initialize( $done, $filename, $sessionKey, $path, $fileSize, $sessionData ) { + $this->status = new Status; + $this->initFromSessionKey( $sessionKey, $sessionData ); if ( !$this->sessionKey && !$done ) { @@ -127,7 +129,6 @@ class UploadFromChunks extends UploadBase { // b) should only happen over POST // c) we need the token to validate chunks are coming from a non-xss request $token = urlencode( $wgUser->editToken() ); - ob_clean(); echo FormatJson::encode( array( 'uploadUrl' => wfExpandUrl( wfScript( 'api' ) ) . "?action=upload&" . "token={$token}&format=json&enablechunks=true&chunksessionkey=" . @@ -141,7 +142,6 @@ class UploadFromChunks extends UploadBase { // return success: // firefogg expects a specific result // http://www.firefogg.org/dev/chunk_post.html - ob_clean(); echo FormatJson::encode( array( 'result' => 1, 'filesize' => $this->fileSize ) ); @@ -164,7 +164,6 @@ class UploadFromChunks extends UploadBase { // firefogg expects a specific result // http://www.firefogg.org/dev/chunk_post.html - ob_clean(); echo FormatJson::encode( array( 'result' => 1, 'done' => 1, @@ -172,6 +171,8 @@ class UploadFromChunks extends UploadBase { ); $wgOut->disable(); } + + return Status::newGood(); } /** @@ -215,7 +216,7 @@ class UploadFromChunks extends UploadBase { public function verifyUpload() { if ( $this->chunkMode != self::DONE ) { - return Status::newGood(); + return array('status' => UploadBase::OK); } return parent::verifyUpload(); } diff --git a/maintenance/tests/UploadFromChunksTest.php b/maintenance/tests/UploadFromChunksTest.php index 09a212ac83..2b8a293b02 100644 --- a/maintenance/tests/UploadFromChunksTest.php +++ b/maintenance/tests/UploadFromChunksTest.php @@ -11,6 +11,17 @@ class UploadFromChunksTest extends ApiSetup { ini_set('file_loads', true); } + function testGetTitle() { + $filename = tempnam( wfTempDir(), "" ); + $c = new UploadFromChunks(); + $c->initialize(false, "temp.txt", null, $filename, 0, null); + $this->assertEquals(null, $c->getTitle()); + + $c = new UploadFromChunks(); + $c->initialize(false, "temp.png", null, $filename, 0, null); + $this->assertEquals(Title::makeTitleSafe(NS_FILE, "Temp.png"), $c->getTitle()); + } + function testGetEditToken() { } @@ -58,7 +69,7 @@ class UploadFromChunksTest extends ApiSetup { $req = new FauxRequest( array('action' => 'upload', 'enablechunks' => '1', - 'filename' => 'test.txt', + 'filename' => 'test.png', 'token' => $token, )); $module = new ApiMain($req, true); @@ -75,7 +86,7 @@ class UploadFromChunksTest extends ApiSetup { $req = new FauxRequest( array('action' => 'upload', 'enablechunks' => '1', - 'filename' => 'test.txt', + 'filename' => 'test.png', 'token' => $token, )); $module = new ApiMain($req, true); -- 2.20.1