From c4d1048431d8ab010bbecd7ee6558390c6d2126c Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 29 Sep 2023 16:42:23 +0000 Subject: [PATCH] fix media test --- Controller/ApiController.php | 27 +++++++++++++++++++ .../Api/ApiControllerMediaTrait.php | 10 ++++--- tests/Controller/ApiControllerTest.php | 1 + 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 1b90e28..c69c745 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -562,6 +562,13 @@ final class ApiController extends Controller */ public function apiMediaUpdate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void { + if (!empty($val = $this->validateMediaUpdate($request))) { + $response->header->status = RequestStatusCode::R_400; + $this->createInvalidUpdateResponse($request, $response, $val); + + return; + } + /** @var Media $old */ $old = MediaMapper::get()->where('id', (int) $request->getData('id'))->execute(); $new = $this->updateMediaFromRequest($request, clone $old); @@ -570,6 +577,25 @@ final class ApiController extends Controller $this->createStandardUpdateResponse($request, $response, $new); } + /** + * Validate media update request + * + * @param RequestAbstract $request Request + * + * @return array Returns the validation array of the request + * + * @since 1.0.0 + */ + private function validateMediaUpdate(RequestAbstract $request) : array + { + $val = []; + if (($val['id'] = !$request->hasData('id'))) { + return $val; + } + + return []; + } + /** * Method to update media from request. * @@ -599,6 +625,7 @@ final class ApiController extends Controller return $new; } + // @todo: create test for this content change and the parsed content change if ($request->hasData('content')) { \file_put_contents( $new->isAbsolute diff --git a/tests/Controller/Api/ApiControllerMediaTrait.php b/tests/Controller/Api/ApiControllerMediaTrait.php index 48e278f..b276019 100755 --- a/tests/Controller/Api/ApiControllerMediaTrait.php +++ b/tests/Controller/Api/ApiControllerMediaTrait.php @@ -244,8 +244,9 @@ trait ApiControllerMediaTrait $request->header->account = 1; $request->setData('id', $id); - $request->setData('name', 'Test Changed'); - $request->setData('content', 'Test Changed'); + $request->setData('name', 'New name'); + $request->setData('description', 'New description'); + $request->setData('content', 'New content'); $this->module->apiMediaUpdate($request, $response); $media = MediaMapper::get() @@ -253,8 +254,9 @@ trait ApiControllerMediaTrait ->where('id', $id) ->execute(); - self::assertEquals('Test Changed', $media->name); - self::assertEquals('Test Changed', $media->content?->content); + self::assertEquals('New name', $media->name); + self::assertEquals('New description', $media->description); + self::AssertEquals('New content', \file_get_contents($media->getAbsolutePath())); Directory::delete(__DIR__ . '/../test'); } diff --git a/tests/Controller/ApiControllerTest.php b/tests/Controller/ApiControllerTest.php index 1cea3c5..77d84ee 100755 --- a/tests/Controller/ApiControllerTest.php +++ b/tests/Controller/ApiControllerTest.php @@ -46,6 +46,7 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase $this->app = new class() extends ApplicationAbstract { protected string $appName = 'Api'; + protected int $appId = 1; }; $this->app->dbPool = $GLOBALS['dbpool'];