mirror of
https://github.com/Karaka-Management/oms-Media.git
synced 2026-02-17 09:48:41 +00:00
add unit tests
This commit is contained in:
parent
005a269bc9
commit
9d61848c51
|
|
@ -644,7 +644,9 @@ final class ApiController extends Controller
|
||||||
$view = new View($this->app->l11nManager, $request, $response);
|
$view = new View($this->app->l11nManager, $request, $response);
|
||||||
$view->setData('media', $media);
|
$view->setData('media', $media);
|
||||||
|
|
||||||
$response->endAllOutputBuffering(); // for large files
|
if (!\headers_sent()) {
|
||||||
|
$response->endAllOutputBuffering(); // for large files
|
||||||
|
}
|
||||||
|
|
||||||
if (($type = $request->getData('type')) === null) {
|
if (($type = $request->getData('type')) === null) {
|
||||||
$view->setTemplate('/Modules/Media/Theme/Api/render');
|
$view->setTemplate('/Modules/Media/Theme/Api/render');
|
||||||
|
|
@ -652,7 +654,7 @@ final class ApiController extends Controller
|
||||||
$head = new Head();
|
$head = new Head();
|
||||||
$css = \file_get_contents(__DIR__ . '/../../../Web/Backend/css/backend-small.css');
|
$css = \file_get_contents(__DIR__ . '/../../../Web/Backend/css/backend-small.css');
|
||||||
if ($css === false) {
|
if ($css === false) {
|
||||||
$css = '';
|
$css = ''; // @codeCoverageIgnore
|
||||||
}
|
}
|
||||||
|
|
||||||
$css = \preg_replace('!\s+!', ' ', $css);
|
$css = \preg_replace('!\s+!', ' ', $css);
|
||||||
|
|
@ -712,12 +714,11 @@ final class ApiController extends Controller
|
||||||
case 'txt':
|
case 'txt':
|
||||||
case 'cfg':
|
case 'cfg':
|
||||||
case 'log':
|
case 'log':
|
||||||
$response->header->set('Content-Type', MimeType::M_TXT, true);
|
|
||||||
break;
|
|
||||||
case 'md':
|
case 'md':
|
||||||
$response->header->set('Content-Type', MimeType::M_TXT, true);
|
$response->header->set('Content-Type', MimeType::M_TXT, true);
|
||||||
break;
|
break;
|
||||||
case 'csv':
|
case 'csv':
|
||||||
|
case 'json':
|
||||||
$response->header->set('Content-Type', MimeType::M_CSV, true);
|
$response->header->set('Content-Type', MimeType::M_CSV, true);
|
||||||
break;
|
break;
|
||||||
case 'xls':
|
case 'xls':
|
||||||
|
|
@ -738,9 +739,6 @@ final class ApiController extends Controller
|
||||||
case 'pptx':
|
case 'pptx':
|
||||||
$response->header->set('Content-Type', MimeType::M_PPTX, true);
|
$response->header->set('Content-Type', MimeType::M_PPTX, true);
|
||||||
break;
|
break;
|
||||||
case 'json':
|
|
||||||
$response->header->set('Content-Type', MimeType::M_CSV, true);
|
|
||||||
break;
|
|
||||||
case 'jpg':
|
case 'jpg':
|
||||||
case 'jpeg':
|
case 'jpeg':
|
||||||
$response->header->set('Content-Type', MimeType::M_JPG, true);
|
$response->header->set('Content-Type', MimeType::M_JPG, true);
|
||||||
|
|
|
||||||
|
|
@ -43,10 +43,10 @@ class Collection extends Media implements \Iterator
|
||||||
/**
|
/**
|
||||||
* Is collection.
|
* Is collection.
|
||||||
*
|
*
|
||||||
* @var int
|
* @var bool
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected int $collection = 1;
|
protected bool $collection = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set sources.
|
* Set sources.
|
||||||
|
|
@ -108,20 +108,6 @@ class Collection extends Media implements \Iterator
|
||||||
return new NullMedia();
|
return new NullMedia();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function setExtension(string $extension) : void
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function setVersioned(bool $versioned) : void
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -160,10 +160,10 @@ class Media implements \JsonSerializable
|
||||||
/**
|
/**
|
||||||
* Is collection.
|
* Is collection.
|
||||||
*
|
*
|
||||||
* @var int
|
* @var bool
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected int $collection = 0;
|
protected bool $collection = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tags.
|
* Tags.
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ class MediaMapper extends DataMapperAbstract
|
||||||
'media_password' => ['name' => 'media_password', 'type' => 'string', 'internal' => 'password'],
|
'media_password' => ['name' => 'media_password', 'type' => 'string', 'internal' => 'password'],
|
||||||
'media_extension' => ['name' => 'media_extension', 'type' => 'string', 'internal' => 'extension'],
|
'media_extension' => ['name' => 'media_extension', 'type' => 'string', 'internal' => 'extension'],
|
||||||
'media_size' => ['name' => 'media_size', 'type' => 'int', 'internal' => 'size'],
|
'media_size' => ['name' => 'media_size', 'type' => 'int', 'internal' => 'size'],
|
||||||
'media_collection' => ['name' => 'media_collection', 'type' => 'int', 'internal' => 'collection'],
|
'media_collection' => ['name' => 'media_collection', 'type' => 'bool', 'internal' => 'collection'],
|
||||||
'media_created_by' => ['name' => 'media_created_by', 'type' => 'int', 'internal' => 'createdBy', 'readonly' => true],
|
'media_created_by' => ['name' => 'media_created_by', 'type' => 'int', 'internal' => 'createdBy', 'readonly' => true],
|
||||||
'media_created_at' => ['name' => 'media_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt', 'readonly' => true],
|
'media_created_at' => ['name' => 'media_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt', 'readonly' => true],
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,8 @@ class MediaType implements \JsonSerializable, ArrayableInterface
|
||||||
/**
|
/**
|
||||||
* Name.
|
* Name.
|
||||||
*
|
*
|
||||||
|
* Name used for additional identification, doesn't have to be unique.
|
||||||
|
*
|
||||||
* @var string
|
* @var string
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
|
|
@ -49,7 +51,19 @@ class MediaType implements \JsonSerializable, ArrayableInterface
|
||||||
* @var string|MediaTypeL11n
|
* @var string|MediaTypeL11n
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected $title = '';
|
protected $title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param string $name Name
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function __construct(string $name = '')
|
||||||
|
{
|
||||||
|
$this->setL11n($name);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get id
|
* Get id
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ declare(strict_types=1);
|
||||||
namespace Modules\Media\tests\Controller\Api;
|
namespace Modules\Media\tests\Controller\Api;
|
||||||
|
|
||||||
use Modules\Media\Models\MediaMapper;
|
use Modules\Media\Models\MediaMapper;
|
||||||
|
use Modules\Media\Models\Media;
|
||||||
use Modules\Media\Models\PathSettings;
|
use Modules\Media\Models\PathSettings;
|
||||||
use Modules\Media\Models\UploadStatus;
|
use Modules\Media\Models\UploadStatus;
|
||||||
use phpOMS\Message\Http\HttpRequest;
|
use phpOMS\Message\Http\HttpRequest;
|
||||||
|
|
@ -22,6 +23,7 @@ use phpOMS\Message\Http\HttpResponse;
|
||||||
use phpOMS\System\File\Local\Directory;
|
use phpOMS\System\File\Local\Directory;
|
||||||
use phpOMS\Uri\HttpUri;
|
use phpOMS\Uri\HttpUri;
|
||||||
use phpOMS\Utils\TestUtils;
|
use phpOMS\Utils\TestUtils;
|
||||||
|
use phpOMS\System\MimeType;
|
||||||
|
|
||||||
trait ApiControllerMediaTrait
|
trait ApiControllerMediaTrait
|
||||||
{
|
{
|
||||||
|
|
@ -73,6 +75,7 @@ trait ApiControllerMediaTrait
|
||||||
|
|
||||||
$request->header->account = 1;
|
$request->header->account = 1;
|
||||||
$request->setData('name', 'Test Upload');
|
$request->setData('name', 'Test Upload');
|
||||||
|
$request->setData('tags', '[{"title": "TestTitle", "color": "#f0f", "language": "en"}, {"id": 1}]');
|
||||||
|
|
||||||
if (!\is_dir(__DIR__ . '/temp')) {
|
if (!\is_dir(__DIR__ . '/temp')) {
|
||||||
\mkdir(__DIR__ . '/temp');
|
\mkdir(__DIR__ . '/temp');
|
||||||
|
|
@ -257,4 +260,334 @@ trait ApiControllerMediaTrait
|
||||||
|
|
||||||
Directory::delete(__DIR__ . '/../test');
|
Directory::delete(__DIR__ . '/../test');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testCreateView() : void
|
||||||
|
{
|
||||||
|
$media = new Media();
|
||||||
|
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('type', 'html');
|
||||||
|
|
||||||
|
$media->extension = 'xls';
|
||||||
|
self::assertInstanceOf('\phpOMS\Views\View', $this->module->createView($media, $request, $response));
|
||||||
|
|
||||||
|
$media->extension = 'docx';
|
||||||
|
self::assertInstanceOf('\phpOMS\Views\View', $this->module->createView($media, $request, $response));
|
||||||
|
|
||||||
|
$request->setData('type', null, true);
|
||||||
|
self::assertInstanceOf('\phpOMS\Views\View', $this->module->createView($media, $request, $response));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportHTM() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'htm');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_HTML, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportPDF() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'pdf');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_PDF, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportC() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'c');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_TXT, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportTXT() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'txt');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_TXT, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportCSV() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'csv');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_CSV, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportXLS() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'xls');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_XLS, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportXLSX() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'xlsx');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_XLSX, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportDOC() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'doc');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_DOC, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportDOCX() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'docx');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_DOCX, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportPPT() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'ppt');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_PPT, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportPPTX() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'pptx');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_PPTX, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportJPG() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'jpg');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_JPG, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportGIF() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'gif');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_GIF, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportPNG() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'png');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_PNG, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportMP3() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'mp3');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_MP3, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportMP4() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'mp4');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_MP4, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportMPEG() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'mpeg');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_MPEG, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Controller\ApiController
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testApiMediaExportBIN() : void
|
||||||
|
{
|
||||||
|
$response = new HttpResponse();
|
||||||
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$request->header->account = 1;
|
||||||
|
$request->setData('id', '1');
|
||||||
|
$request->setData('type', 'exe');
|
||||||
|
|
||||||
|
$this->module->apiMediaExport($request, $response);
|
||||||
|
self::assertEquals(MimeType::M_BIN, $response->header->get('Content-Type')[0]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ final class CollectionMapperTest extends \PHPUnit\Framework\TestCase
|
||||||
$media->description = 'desc';
|
$media->description = 'desc';
|
||||||
$media->descriptionRaw = 'descRaw';
|
$media->descriptionRaw = 'descRaw';
|
||||||
$media->setPath('some/path');
|
$media->setPath('some/path');
|
||||||
|
$media->setVirtualPath('/some/path');
|
||||||
$media->size = 11;
|
$media->size = 11;
|
||||||
$media->name = 'Collection';
|
$media->name = 'Collection';
|
||||||
$id = CollectionMapper::create($media);
|
$id = CollectionMapper::create($media);
|
||||||
|
|
@ -51,5 +52,8 @@ final class CollectionMapperTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals($media->size, $mediaR->size);
|
self::assertEquals($media->size, $mediaR->size);
|
||||||
self::assertEquals($media->extension, $mediaR->extension);
|
self::assertEquals($media->extension, $mediaR->extension);
|
||||||
self::assertEquals($media->name, $mediaR->name);
|
self::assertEquals($media->name, $mediaR->name);
|
||||||
|
|
||||||
|
self::assertGreaterThan(0, \count(CollectionMapper::getByVirtualPath('/some/path')));
|
||||||
|
self::assertGreaterThan(0, \count(CollectionMapper::getCollectionsByPath('/', true)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ final class CollectionTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals(0, $this->media->size);
|
self::assertEquals(0, $this->media->size);
|
||||||
self::assertFalse($this->media->isVersioned);
|
self::assertFalse($this->media->isVersioned);
|
||||||
self::assertEquals([], $this->media->getSources());
|
self::assertEquals([], $this->media->getSources());
|
||||||
|
self::assertInstanceOf('\Modules\Media\Models\NullMedia', $this->media->getSourceByName('invalid'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -121,7 +122,10 @@ final class CollectionTest extends \PHPUnit\Framework\TestCase
|
||||||
public function testSourceInputOutput() : void
|
public function testSourceInputOutput() : void
|
||||||
{
|
{
|
||||||
$this->media->setSources([$a = new NullMedia(1), $b = new NullMedia(2), $c = new NullMedia(3)]);
|
$this->media->setSources([$a = new NullMedia(1), $b = new NullMedia(2), $c = new NullMedia(3)]);
|
||||||
|
|
||||||
|
$b->name = 'test';
|
||||||
self::assertEquals([$a, $b, $c], $this->media->getSources());
|
self::assertEquals([$a, $b, $c], $this->media->getSources());
|
||||||
|
self::assertEquals($b, $this->media->getSourceByName('test'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ namespace Modules\Media\tests\Models;
|
||||||
|
|
||||||
use Modules\Admin\Models\NullAccount;
|
use Modules\Admin\Models\NullAccount;
|
||||||
use Modules\Media\Models\Media;
|
use Modules\Media\Models\Media;
|
||||||
|
use Modules\Tag\Models\Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @internal
|
* @internal
|
||||||
|
|
@ -190,6 +191,35 @@ final class MediaTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertFalse($this->media->comparePassword('test2'));
|
self::assertFalse($this->media->comparePassword('test2'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Models\Media
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testTagInputOutput() : void
|
||||||
|
{
|
||||||
|
$tag = new Tag();
|
||||||
|
$tag->setL11n('Tag');
|
||||||
|
|
||||||
|
$this->media->addTag($tag);
|
||||||
|
self::assertEquals($tag, $this->media->getTag(0));
|
||||||
|
self::assertCount(1, $this->media->getTags());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Models\Media
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testTagRemove() : void
|
||||||
|
{
|
||||||
|
$tag = new Tag();
|
||||||
|
$tag->setL11n('Tag');
|
||||||
|
|
||||||
|
$this->media->addTag($tag);
|
||||||
|
self::assertTrue($this->media->removeTag(0));
|
||||||
|
self::assertCount(0, $this->media->getTags());
|
||||||
|
self::assertFalse($this->media->removeTag(0));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers Modules\Media\Models\Media
|
* @covers Modules\Media\Models\Media
|
||||||
* @group module
|
* @group module
|
||||||
|
|
|
||||||
87
tests/Models/MediaTypeL11nTest.php
Normal file
87
tests/Models/MediaTypeL11nTest.php
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Orange Management
|
||||||
|
*
|
||||||
|
* PHP Version 8.0
|
||||||
|
*
|
||||||
|
* @package tests
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Modules\Media\tests\Models;
|
||||||
|
|
||||||
|
use Modules\Media\Models\MediaTypeL11n;
|
||||||
|
use phpOMS\Localization\ISO639x1Enum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class MediaTypeL11nTest extends \PHPUnit\Framework\TestCase
|
||||||
|
{
|
||||||
|
private MediaTypeL11n $l11n;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function setUp() : void
|
||||||
|
{
|
||||||
|
$this->l11n = new MediaTypeL11n();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Models\MediaTypeL11n
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testDefault() : void
|
||||||
|
{
|
||||||
|
self::assertEquals(0, $this->l11n->getId());
|
||||||
|
self::assertEquals('', $this->l11n->title);
|
||||||
|
self::assertEquals(0, $this->l11n->type);
|
||||||
|
self::assertEquals(ISO639x1Enum::_EN, $this->l11n->getLanguage());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Models\MediaTypeL11n
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testNameInputOutput() : void
|
||||||
|
{
|
||||||
|
$this->l11n->title = 'TestName';
|
||||||
|
self::assertEquals('TestName', $this->l11n->title);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Models\MediaTypeL11n
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testLanguageInputOutput() : void
|
||||||
|
{
|
||||||
|
$this->l11n->setLanguage(ISO639x1Enum::_DE);
|
||||||
|
self::assertEquals(ISO639x1Enum::_DE, $this->l11n->getLanguage());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Models\MediaTypeL11n
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testSerialize() : void
|
||||||
|
{
|
||||||
|
$this->l11n->title = 'Title';
|
||||||
|
$this->l11n->type = 2;
|
||||||
|
$this->l11n->setLanguage(ISO639x1Enum::_DE);
|
||||||
|
|
||||||
|
self::assertEquals(
|
||||||
|
[
|
||||||
|
'id' => 0,
|
||||||
|
'title' => 'Title',
|
||||||
|
'type' => 2,
|
||||||
|
'language' => ISO639x1Enum::_DE,
|
||||||
|
],
|
||||||
|
$this->l11n->jsonSerialize()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
77
tests/Models/MediaTypeTest.php
Normal file
77
tests/Models/MediaTypeTest.php
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Orange Management
|
||||||
|
*
|
||||||
|
* PHP Version 8.0
|
||||||
|
*
|
||||||
|
* @package tests
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Modules\Media\tests\Models;
|
||||||
|
|
||||||
|
use Modules\Media\Models\MediaType;
|
||||||
|
use Modules\Media\Models\MediaTypeL11n;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class MediaTypeTest extends \PHPUnit\Framework\TestCase
|
||||||
|
{
|
||||||
|
private MediaType $type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function setUp() : void
|
||||||
|
{
|
||||||
|
$this->type = new MediaType();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Models\MediaType
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testDefault() : void
|
||||||
|
{
|
||||||
|
self::assertEquals(0, $this->type->getId());
|
||||||
|
self::assertEquals('', $this->type->name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Models\MediaType
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testL11nInputOutput() : void
|
||||||
|
{
|
||||||
|
$this->type->setL11n('Test1');
|
||||||
|
self::assertEquals('Test1', $this->type->getL11n());
|
||||||
|
|
||||||
|
$this->type->setL11n(new MediaTypeL11n('Test2'));
|
||||||
|
self::assertEquals('Test2', $this->type->getL11n());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Models\MediaType
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testSerialize() : void
|
||||||
|
{
|
||||||
|
$this->type->name = 'Name';
|
||||||
|
|
||||||
|
$serialized = $this->type->jsonSerialize();
|
||||||
|
unset($serialized['title']);
|
||||||
|
|
||||||
|
self::assertEquals(
|
||||||
|
[
|
||||||
|
'id' => 0,
|
||||||
|
'name' => 'Name',
|
||||||
|
],
|
||||||
|
$serialized
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
tests/Views/Audio.mp3
Normal file
BIN
tests/Views/Audio.mp3
Normal file
Binary file not shown.
|
|
@ -234,4 +234,38 @@ final class MediaViewTest extends \PHPUnit\Framework\TestCase
|
||||||
$method->invoke($this->view, $media, __DIR__ . '/test.md')
|
$method->invoke($this->view, $media, __DIR__ . '/test.md')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Views\MediaView
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testIsVideo() : void
|
||||||
|
{
|
||||||
|
$method = new \ReflectionMethod($this->view, 'isVideoFile');
|
||||||
|
$method->setAccessible(true);
|
||||||
|
|
||||||
|
$media = new Media();
|
||||||
|
$media->setPath(__DIR__ . '/Video.mp4');
|
||||||
|
$media->isAbsolute = true;
|
||||||
|
self::assertFalse(
|
||||||
|
$method->invoke($this->view, $media)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Modules\Media\Views\MediaView
|
||||||
|
* @group module
|
||||||
|
*/
|
||||||
|
public function testIsAudio() : void
|
||||||
|
{
|
||||||
|
$method = new \ReflectionMethod($this->view, 'isAudioFile');
|
||||||
|
$method->setAccessible(true);
|
||||||
|
|
||||||
|
$media = new Media();
|
||||||
|
$media->setPath(__DIR__ . '/Audio.mp4');
|
||||||
|
$media->isAbsolute = true;
|
||||||
|
self::assertFalse(
|
||||||
|
$method->invoke($this->view, $media)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
BIN
tests/Views/Video.mp4
Normal file
BIN
tests/Views/Video.mp4
Normal file
Binary file not shown.
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" bootstrap="Bootstrap.php" colors="true" stopOnError="true" stopOnFailure="false" stopOnIncomplete="false" stopOnSkipped="false" beStrictAboutTestsThatDoNotTestAnything="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
|
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" bootstrap="Bootstrap.php" colors="true" columns="120" stopOnError="true" stopOnFailure="false" stopOnIncomplete="false" stopOnSkipped="false" beStrictAboutTestsThatDoNotTestAnything="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
|
||||||
<coverage includeUncoveredFiles="true" processUncoveredFiles="false">
|
<coverage includeUncoveredFiles="true" processUncoveredFiles="false">
|
||||||
<exclude>
|
<exclude>
|
||||||
<directory>*vendor*</directory>
|
<directory>*vendor*</directory>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user