mirror of
https://github.com/Karaka-Management/oms-Media.git
synced 2026-02-05 20:18:43 +00:00
fix tests and replace file_exists
This commit is contained in:
parent
654d3d8a9e
commit
b6e6aabacd
|
|
@ -49,17 +49,15 @@ final class Installer extends InstallerAbstract
|
|||
try {
|
||||
$dbPool->get()->con->query('select 1 from `media`');
|
||||
} catch (\Exception $e) {
|
||||
return;
|
||||
return; // @codeCoverageIgnore
|
||||
}
|
||||
|
||||
$mediaFile = \file_get_contents($data['path'] ?? '');
|
||||
|
||||
if ($mediaFile === false) {
|
||||
throw new PathException($data['path'] ?? '');
|
||||
}
|
||||
|
||||
$mediaData = \json_decode($mediaFile, true);
|
||||
|
||||
if ($mediaData === false) {
|
||||
throw new \Exception();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@ class UploadFile
|
|||
$result[$key]['filename'] = $this->fileName;
|
||||
}
|
||||
|
||||
if (empty($this->fileName) || \file_exists($path . '/' . $this->fileName)) {
|
||||
if (empty($this->fileName) || \is_file($path . '/' . $this->fileName)) {
|
||||
try {
|
||||
$this->fileName = $this->createFileName($path, $f['tmp_name'], $extension);
|
||||
$result[$key]['filename'] = $this->fileName;
|
||||
|
|
@ -271,7 +271,7 @@ class UploadFile
|
|||
$fileName = $sha;
|
||||
$rnd = \mt_rand();
|
||||
++$limit;
|
||||
} while (\file_exists($path . '/' . $fileName) && $limit < self::PATH_GENERATION_LIMIT);
|
||||
} while (\is_file($path . '/' . $fileName) && $limit < self::PATH_GENERATION_LIMIT);
|
||||
|
||||
if ($limit >= self::PATH_GENERATION_LIMIT) {
|
||||
throw new \Exception('No file path could be found. Potential attack!');
|
||||
|
|
@ -328,7 +328,7 @@ class UploadFile
|
|||
{
|
||||
do {
|
||||
$rndPath = \str_pad(\dechex(\mt_rand(0, 65535)), 4, '0', \STR_PAD_LEFT);
|
||||
} while (\file_exists($this->outputDir . '/' . $rndPath));
|
||||
} while (\is_dir($this->outputDir . '/' . $rndPath));
|
||||
|
||||
return $this->outputDir . '/' . $rndPath;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ echo $this->getData('nav')->render();
|
|||
<?php elseif ($this->isTextFile($media, $path)) : ?>
|
||||
<!-- if markdown show markdown editor, if image show image editor, if text file show textarea only on edit -->
|
||||
|
||||
<?php if (!\file_exists(($media->isAbsolute() ? '' : __DIR__ . '/../../../../') . $media->getPath())) : ?>
|
||||
<?php if (!\is_file(($media->isAbsolute() ? '' : __DIR__ . '/../../../../') . $media->getPath())) : ?>
|
||||
<div class="centerText"><i class="fa fa-question fa-5x"></i></div>
|
||||
<?php else : ?>
|
||||
<template id="iMediaUpdateTpl">
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ declare(strict_types=1);
|
|||
|
||||
namespace Modules\Media\tests\Admin;
|
||||
|
||||
use Modules\Media\Admin\Installer;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
|
|
@ -24,4 +26,18 @@ class AdminTest extends \PHPUnit\Framework\TestCase
|
|||
protected const URI_LOAD = 'http://127.0.0.1/en/backend/media';
|
||||
|
||||
use \Modules\tests\ModuleTestTrait;
|
||||
|
||||
public function testInvalidMediaInstallPath() : void
|
||||
{
|
||||
$this->expectException(\phpOMS\System\File\PathException::class);
|
||||
|
||||
Installer::installExternal($GLOBALS['dbpool'], ['path' => 'invalid.json']);
|
||||
}
|
||||
|
||||
public function testInvalidMediaInstallJsonFile() : void
|
||||
{
|
||||
$this->expectException(\PathException::class);
|
||||
|
||||
Installer::installExternal($GLOBALS['dbpool'], ['path' => 'invalidJson.json']);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
3
tests/Admin/invalidJson.json
Normal file
3
tests/Admin/invalidJson.json
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"test": [],
|
||||
}
|
||||
|
|
@ -34,7 +34,7 @@ trait ApiControllerCollectionTrait
|
|||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('name', 'Test Upload');
|
||||
|
||||
if (!\file_exists(__DIR__ . '/temp')) {
|
||||
if (!\is_dir(__DIR__ . '/temp')) {
|
||||
\mkdir(__DIR__ . '/temp');
|
||||
}
|
||||
|
||||
|
|
@ -62,7 +62,7 @@ trait ApiControllerCollectionTrait
|
|||
|
||||
$this->module->apiMediaUpload($request, $response);
|
||||
|
||||
if (\file_exists(__DIR__ . '/temp')) {
|
||||
if (\is_dir(__DIR__ . '/temp')) {
|
||||
Directory::delete(__DIR__ . '/temp');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ trait ApiControllerMediaTrait
|
|||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('name', 'Test Upload');
|
||||
|
||||
if (!\file_exists(__DIR__ . '/temp')) {
|
||||
if (!\is_dir(__DIR__ . '/temp')) {
|
||||
\mkdir(__DIR__ . '/temp');
|
||||
}
|
||||
|
||||
|
|
@ -100,7 +100,7 @@ trait ApiControllerMediaTrait
|
|||
|
||||
$this->module->apiMediaUpload($request, $response);
|
||||
|
||||
if (\file_exists(__DIR__ . '/temp')) {
|
||||
if (\is_dir(__DIR__ . '/temp')) {
|
||||
Directory::delete(__DIR__ . '/temp');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@ class CollectionTest extends \PHPUnit\Framework\TestCase
|
|||
$this->media = new Collection();
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Collection
|
||||
* @group module
|
||||
*/
|
||||
public function testDefault() : void
|
||||
{
|
||||
self::assertEquals(0, $this->media->getId());
|
||||
|
|
@ -44,18 +48,30 @@ class CollectionTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertEquals([], $this->media->getSources());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Collection
|
||||
* @group module
|
||||
*/
|
||||
public function testCreatedByInputOutput() : void
|
||||
{
|
||||
$this->media->setCreatedBy(new NullAccount(1));
|
||||
self::assertEquals(1, $this->media->getCreatedBy()->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Collection
|
||||
* @group module
|
||||
*/
|
||||
public function testExtensionInputOutput() : void
|
||||
{
|
||||
$this->media->setExtension('pdf');
|
||||
self::assertEquals('collection', $this->media->getExtension());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Collection
|
||||
* @group module
|
||||
*/
|
||||
public function testPathInputOutput() : void
|
||||
{
|
||||
$this->media->setPath('/home/root');
|
||||
|
|
@ -65,30 +81,50 @@ class CollectionTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertEquals('/home/root', $this->media->getPath());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Collection
|
||||
* @group module
|
||||
*/
|
||||
public function testDescriptionInputOutput() : void
|
||||
{
|
||||
$this->media->setDescription('This is a description');
|
||||
self::assertEquals('This is a description', $this->media->getDescription());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Collection
|
||||
* @group module
|
||||
*/
|
||||
public function testSizeInputOutput() : void
|
||||
{
|
||||
$this->media->setSize(11);
|
||||
self::assertEquals(11, $this->media->getSize());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Collection
|
||||
* @group module
|
||||
*/
|
||||
public function testVersionedInputOutput() : void
|
||||
{
|
||||
$this->media->setVersioned(true);
|
||||
self::assertFalse($this->media->isVersioned());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Collection
|
||||
* @group module
|
||||
*/
|
||||
public function testSourceInputOutput() : void
|
||||
{
|
||||
$this->media->setSources([$a = new NullMedia(1), $b = new NullMedia(2), $c = new NullMedia(3)]);
|
||||
self::assertEquals([$a, $b, $c], $this->media->getSources());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Collection
|
||||
* @group module
|
||||
*/
|
||||
public function testSourceAddInputOutput() : void
|
||||
{
|
||||
$this->media->setSources([$a = new NullMedia(1), $b = new NullMedia(2), $c = new NullMedia(3)]);
|
||||
|
|
|
|||
|
|
@ -23,6 +23,10 @@ use Modules\Media\Models\MediaMapper;
|
|||
*/
|
||||
class MediaMapperTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
/**
|
||||
* @covers Modules\Media\Models\MediaMapper
|
||||
* @group module
|
||||
*/
|
||||
public function testCR() : void
|
||||
{
|
||||
$media = new Media();
|
||||
|
|
@ -50,6 +54,10 @@ class MediaMapperTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertEquals($media->getName(), $mediaR->getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\MediaMapper
|
||||
* @group module
|
||||
*/
|
||||
public function testAbsolute() : void
|
||||
{
|
||||
$media = new Media();
|
||||
|
|
@ -76,6 +84,10 @@ class MediaMapperTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertEquals($media->getName(), $mediaR->getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\MediaMapper
|
||||
* @group module
|
||||
*/
|
||||
public function testDirectoryMapping() : void
|
||||
{
|
||||
$media = new Media();
|
||||
|
|
|
|||
|
|
@ -29,6 +29,10 @@ class MediaTest extends \PHPUnit\Framework\TestCase
|
|||
$this->media = new Media();
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Media
|
||||
* @group module
|
||||
*/
|
||||
public function testDefault() : void
|
||||
{
|
||||
self::assertEquals(0, $this->media->getId());
|
||||
|
|
@ -45,18 +49,30 @@ class MediaTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertFalse($this->media->isVersioned());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Media
|
||||
* @group module
|
||||
*/
|
||||
public function testCreatedByInputOutput() : void
|
||||
{
|
||||
$this->media->setCreatedBy(new NullAccount(1));
|
||||
self::assertEquals(1, $this->media->getCreatedBy()->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Media
|
||||
* @group module
|
||||
*/
|
||||
public function testExtensionInputOutput() : void
|
||||
{
|
||||
$this->media->setExtension('pdf');
|
||||
self::assertEquals('pdf', $this->media->getExtension());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Media
|
||||
* @group module
|
||||
*/
|
||||
public function testPathInputOutput() : void
|
||||
{
|
||||
$this->media->setPath('/home/root');
|
||||
|
|
@ -66,48 +82,80 @@ class MediaTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertEquals('/home/root', $this->media->getPath());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Media
|
||||
* @group module
|
||||
*/
|
||||
public function testAbsolutePathInputOutput() : void
|
||||
{
|
||||
$this->media->setAbsolute(true);
|
||||
self::assertTrue($this->media->isAbsolute());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Media
|
||||
* @group module
|
||||
*/
|
||||
public function testNameInputOutput() : void
|
||||
{
|
||||
$this->media->setName('Report');
|
||||
self::assertEquals('Report', $this->media->getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Media
|
||||
* @group module
|
||||
*/
|
||||
public function testDescriptionInputOutput() : void
|
||||
{
|
||||
$this->media->setDescription('This is a description');
|
||||
self::assertEquals('This is a description', $this->media->getDescription());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Media
|
||||
* @group module
|
||||
*/
|
||||
public function testDescriptionRawInputOutput() : void
|
||||
{
|
||||
$this->media->setDescriptionRaw('This is a description raw');
|
||||
self::assertEquals('This is a description raw', $this->media->getDescriptionRaw());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Media
|
||||
* @group module
|
||||
*/
|
||||
public function testSizeInputOutput() : void
|
||||
{
|
||||
$this->media->setSize(11);
|
||||
self::assertEquals(11, $this->media->getSize());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Media
|
||||
* @group module
|
||||
*/
|
||||
public function testVersionedInputOutput() : void
|
||||
{
|
||||
$this->media->setVersioned(true);
|
||||
self::assertTrue($this->media->isVersioned());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Media
|
||||
* @group module
|
||||
*/
|
||||
public function testVirtualPathInputOutput() : void
|
||||
{
|
||||
$this->media->setVirtualPath('/test/path');
|
||||
self::assertEquals('/test/path', $this->media->getVirtualPath());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Models\Media
|
||||
* @group module
|
||||
*/
|
||||
public function testHiddenInputOutput() : void
|
||||
{
|
||||
$this->media->setHidden(true);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user