From 7dd8b77b67261e756faff6295e2590119528a3ee Mon Sep 17 00:00:00 2001 From: Julio Date: Fri, 10 Sep 2021 09:51:50 +0200 Subject: [PATCH] Tests: Add phpunit tests --- src/CoreBundle/Repository/AssetRepository.php | 6 ++ .../Controller/AssetControllerTest.php | 72 ++++++++++++++++++- 2 files changed, 76 insertions(+), 2 deletions(-) diff --git a/src/CoreBundle/Repository/AssetRepository.php b/src/CoreBundle/Repository/AssetRepository.php index 9824ecff64..4d88bb2056 100644 --- a/src/CoreBundle/Repository/AssetRepository.php +++ b/src/CoreBundle/Repository/AssetRepository.php @@ -143,6 +143,12 @@ class AssetRepository extends ServiceEntityRepository return $asset; } + public function update(Asset $asset): void + { + $this->getEntityManager()->persist($asset); + $this->getEntityManager()->flush(); + } + public function delete(Asset $asset = null): void { if (null !== $asset) { diff --git a/tests/CoreBundle/Controller/AssetControllerTest.php b/tests/CoreBundle/Controller/AssetControllerTest.php index cd2137bc81..12c2ae77b5 100644 --- a/tests/CoreBundle/Controller/AssetControllerTest.php +++ b/tests/CoreBundle/Controller/AssetControllerTest.php @@ -16,11 +16,80 @@ class AssetControllerTest extends WebTestCase { use ChamiloTestTrait; + public function testCreateWatermark(): void + { + $client = static::createClient(); + $file = $this->getUploadedFile(); + + $assetRepo = self::getContainer()->get(AssetRepository::class); + + // Create asset. + $asset = (new Asset()) + ->setTitle('test') + ->setCategory(Asset::WATERMARK) + ->setCrop('100,100,100,100') + ->setFile($file) + ; + $this->assertHasNoEntityViolations($asset); + $assetRepo->update($asset); + + $folder = $assetRepo->getFolder($asset); + $this->assertSame('/watermark/'.$asset->getFile()->getFilename().'/', $folder); + + $url = $assetRepo->getAssetUrl($asset); + $client->request('GET', $url); + $this->assertResponseIsSuccessful(); + + $asset = (new Asset()) + ->setTitle('test2') + ->setCategory(Asset::WATERMARK) + ->setCrop('100,100,100,100') + ; + $assetRepo->createFromString($asset, 'text/html', 'hello'); + $this->assertHasNoEntityViolations($asset); + + $asset = (new Asset()) + ->setTitle('test3') + ->setCategory(Asset::WATERMARK) + ; + + $file = [ + 'tmp_name' => $this->getUploadedFile()->getRealPath(), + 'name' => $this->getUploadedFile()->getFilename(), + 'type' => $this->getUploadedFile()->getMimeType(), + 'size' => $this->getUploadedFile()->getSize(), + 'error' => UPLOAD_ERR_OK, + ]; + + $assetRepo->createFromRequest($asset, $file); + $this->assertHasNoEntityViolations($asset); + } + + public function testCreateScormAsset(): void + { + $client = static::createClient(); + $file = $this->getUploadedFile(); + + $assetRepo = self::getContainer()->get(AssetRepository::class); + + $asset = (new Asset()) + ->setTitle('test') + ->setCategory(Asset::SCORM) + ->setFile($file) + ; + $this->assertHasNoEntityViolations($asset); + $assetRepo->update($asset); + + $url = $assetRepo->getAssetUrl($asset); + $client->request('GET', $url); + $this->assertResponseIsSuccessful(); + } + public function testShowFile(): void { $client = static::createClient(); $file = $this->getUploadedFile(); - /** @var AssetRepository $assetRepo */ + $assetRepo = self::getContainer()->get(AssetRepository::class); $em = $this->getEntityManager(); @@ -34,7 +103,6 @@ class AssetControllerTest extends WebTestCase $em->flush(); $url = $assetRepo->getAssetUrl($asset); - $client->request('GET', $url); $this->assertResponseIsSuccessful();