Tests: Add getUploadedFileArray + add document tests + fix document lib php

pull/3984/head
Julio 4 years ago
parent 4fa8f0c21a
commit ceebf7e06c
  1. 9
      public/main/inc/lib/document.lib.php
  2. 11
      tests/ChamiloTestTrait.php
  3. 9
      tests/CoreBundle/Repository/AssetRepositoryTest.php
  4. 102
      tests/CourseBundle/Repository/CDocumentRepositoryTest.php

@ -3421,20 +3421,13 @@ This folder contains all sessions that have been opened in the chat. Although th
return $document;
}
// $criteria = ['path' => $path, 'course' => $courseEntity];
// $document = $documentRepo->findOneBy($criteria);
//
// // Document already exists
// if ($document) {
// return false;
// }
// is updated using the title
$document = (new CDocument())
->setFiletype($fileType)
->setTitle($title)
->setComment($comment)
->setReadonly(1 === $readonly)
->setCreator(api_get_user_entity())
->setParent($parentResource)
->addCourseLink($courseEntity, $session, $group)
;

@ -134,6 +134,17 @@ trait ChamiloTestTrait
$this->assertEquals(0, $errors->count(), implode(', ', $message));
}
public function getUploadedFileArray(): array
{
return [
'tmp_name' => $this->getUploadedFile()->getRealPath(),
'name' => $this->getUploadedFile()->getFilename(),
'type' => $this->getUploadedFile()->getMimeType(),
'size' => $this->getUploadedFile()->getSize(),
'error' => UPLOAD_ERR_OK,
];
}
public function getUploadedFile(): UploadedFile
{
$path = $this->getContainer()->get('kernel')->getProjectDir();

@ -85,14 +85,7 @@ class AssetRepositoryTest extends AbstractApiTest
->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,
];
$file = $this->getUploadedFileArray();
$assetRepo->createFromRequest($asset, $file);
$this->assertHasNoEntityViolations($asset);
}

@ -16,6 +16,7 @@ use Chamilo\CourseBundle\Entity\CGroup;
use Chamilo\CourseBundle\Repository\CDocumentRepository;
use Chamilo\Tests\AbstractApiTest;
use Chamilo\Tests\ChamiloTestTrait;
use Symfony\Component\HttpFoundation\Request;
class CDocumentRepositoryTest extends AbstractApiTest
{
@ -392,7 +393,101 @@ class CDocumentRepositoryTest extends AbstractApiTest
$this->assertSame(0, \count($docs));
}
public function testCreateNodeForResource(): void
public function testAddFileFromString(): void
{
self::bootKernel();
$course = $this->createCourse('Test');
$documentRepo = self::getContainer()->get(CDocumentRepository::class);
$admin = $this->getUser('admin');
$document = (new CDocument())
->setFiletype('file')
->setTitle('title 123')
->setParent($course)
->setCreator($admin)
->addCourseLink($course)
;
$documentRepo->create($document);
$this->assertInstanceOf(ResourceNode::class, $document->getResourceNode());
$this->assertNull($documentRepo->getParent($document));
$this->assertFalse($document->hasUploadFile());
$this->assertSame(1, $documentRepo->count([]));
$documentRepo->addFileFromString($document, 'test', 'text/html', 'my file', true);
/** @var CDocument $document */
$document = $documentRepo->find($document->getIid());
$this->assertTrue($document->getResourceNode()->hasResourceFile());
}
public function testAddFileFromPath(): void
{
self::bootKernel();
$course = $this->createCourse('Test');
$documentRepo = self::getContainer()->get(CDocumentRepository::class);
$admin = $this->getUser('admin');
$document = (new CDocument())
->setFiletype('file')
->setTitle('title 123')
->setParent($course)
->setCreator($admin)
->addCourseLink($course)
;
$documentRepo->create($document);
$this->assertSame(1, $documentRepo->count([]));
$path = $this->getUploadedFile()->getRealPath();
$resourceFile = $documentRepo->addFileFromPath($document, 'logo.png', $path, true);
$this->assertNotNull($resourceFile);
/** @var CDocument $document */
$document = $documentRepo->find($document->getIid());
$this->assertTrue($document->getResourceNode()->hasResourceFile());
}
public function testAddFileFromFileRequest(): void
{
self::bootKernel();
$course = $this->createCourse('Test');
$documentRepo = self::getContainer()->get(CDocumentRepository::class);
$admin = $this->getUser('admin');
$document = (new CDocument())
->setFiletype('file')
->setTitle('title 123')
->setParent($course)
->setCreator($admin)
->addCourseLink($course)
;
$documentRepo->create($document);
$this->assertSame(1, $documentRepo->count([]));
$file = $this->getUploadedFileArray();
$request = new Request([], [], [], [], ['upload_file' => $file]);
$this->getContainer()->get('request_stack')->push($request);
$resourceFile = $documentRepo->addFileFromFileRequest($document, 'upload_file');
$this->assertNotNull($resourceFile);
/** @var CDocument $document */
$document = $documentRepo->find($document->getIid());
$this->assertTrue($document->getResourceNode()->hasResourceFile());
}
public function testCreateWithAddResourceNode(): void
{
self::bootKernel();
@ -411,8 +506,11 @@ class CDocumentRepositoryTest extends AbstractApiTest
$this->assertInstanceOf(ResourceNode::class, $document->getResourceNode());
$this->assertSame('title 123', (string) $document);
$this->assertNull($documentRepo->getParent($document));
$documentRepo->hardDelete($document);
$this->assertSame(0, $documentRepo->count([]));
}
public function testCreateDocumentWithLinks(): void

Loading…
Cancel
Save