mirror of
https://github.com/Karaka-Management/oms-Editor.git
synced 2026-01-26 08:18:42 +00:00
test fixes
This commit is contained in:
parent
48c8581ca7
commit
635904cd15
|
|
@ -242,6 +242,13 @@ final class ApiController extends Controller
|
|||
*/
|
||||
public function apiFileCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateEditorFileCreate($request))) {
|
||||
$response->set('file_create', new FormValidation($val));
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$uploadedFiles = $request->getFiles() ?? [];
|
||||
|
||||
if (empty($uploadedFiles)) {
|
||||
|
|
@ -272,4 +279,23 @@ final class ApiController extends Controller
|
|||
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'File', 'File successfully updated', $uploaded);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate document create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateEditorFileCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['doc'] = empty($request->getData('doc')))) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -120,7 +120,10 @@ final class EditorDocMapper extends DataMapperAbstract
|
|||
$depth = 3;
|
||||
$query = self::getQuery(depth: $depth);
|
||||
$query->where(self::$table . '_d' . $depth . '.editor_doc_virtual', '=', $virtualPath);
|
||||
$query->where(self::$table . '_d' . $depth . '.editor_doc_created_by', '=', $account);
|
||||
|
||||
if (!empty($account)) {
|
||||
$query->where(self::$table . '_d' . $depth . '.editor_doc_created_by', '=', $account);
|
||||
}
|
||||
|
||||
return self::getAllByQuery($query, RelationType::ALL, $depth);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ use phpOMS\Module\ModuleManager;
|
|||
use phpOMS\Router\WebRouter;
|
||||
use phpOMS\Uri\HttpUri;
|
||||
use phpOMS\Utils\TestUtils;
|
||||
use phpOMS\System\MimeType;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
|
|
@ -104,6 +105,23 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
|
|||
$request->header->account = 1;
|
||||
$request->setData('title', 'Controller Test Title');
|
||||
$request->setData('plain', 'Controller Test Description');
|
||||
$request->setData('tags', '[{"title": "TestTitle", "color": "#f0f", "language": "en"}, {"id": 1}]');
|
||||
|
||||
if (!\is_file(__DIR__ . '/test_tmp.md')) {
|
||||
\copy(__DIR__ . '/test.md', __DIR__ . '/test_tmp.md');
|
||||
}
|
||||
|
||||
TestUtils::setMember($request, 'files', [
|
||||
'file1' => [
|
||||
'name' => 'test.md',
|
||||
'type' => MimeType::M_TXT,
|
||||
'tmp_name' => __DIR__ . '/test_tmp.md',
|
||||
'error' => \UPLOAD_ERR_OK,
|
||||
'size' => \filesize(__DIR__ . '/test_tmp.md'),
|
||||
],
|
||||
]);
|
||||
|
||||
$request->setData('media', \json_encode([1]));
|
||||
|
||||
$this->module->apiEditorCreate($request, $response);
|
||||
|
||||
|
|
@ -115,24 +133,66 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
|
|||
* @covers Modules\Editor\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testCreateEditorDocWithExistingTag() : void
|
||||
public function testCreateFileForDoc() : void
|
||||
{
|
||||
$tag = new Tag();
|
||||
$tag->setL11n('EditorDocTest');
|
||||
$tagId = TagMapper::create($tag);
|
||||
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->header->account = 1;
|
||||
$request->setData('title', 'Controller Test With Tag');
|
||||
$request->setData('plain', 'Controller Test Description');
|
||||
$request->setData('tag', '[' . $tagId . ']');
|
||||
$request->setData('doc', '1');
|
||||
$request->setData('name', 'NewUpload');
|
||||
|
||||
$this->module->apiEditorCreate($request, $response);
|
||||
if (!\is_file(__DIR__ . '/test_tmp.md')) {
|
||||
\copy(__DIR__ . '/test.md', __DIR__ . '/test_tmp.md');
|
||||
}
|
||||
|
||||
self::assertEquals('Controller Test With Tag', $response->get('')['response']->title);
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
TestUtils::setMember($request, 'files', [
|
||||
'file1' => [
|
||||
'name' => 'test.md',
|
||||
'type' => MimeType::M_TXT,
|
||||
'tmp_name' => __DIR__ . '/test_tmp.md',
|
||||
'error' => \UPLOAD_ERR_OK,
|
||||
'size' => \filesize(__DIR__ . '/test_tmp.md'),
|
||||
],
|
||||
]);
|
||||
|
||||
$request->setData('media', \json_encode([1]));
|
||||
|
||||
$this->module->apiFileCreate($request, $response);
|
||||
self::assertCount(1, $response->get('')['response']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Editor\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testCreateFileForDocEmptyUpload() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->header->account = 1;
|
||||
$request->setData('doc', '1');
|
||||
$request->setData('name', 'MissingFile');
|
||||
|
||||
$this->module->apiFileCreate($request, $response);
|
||||
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Editor\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testCreateFileForDocInvalidData() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->header->account = 1;
|
||||
$request->setData('invalid', '1');
|
||||
|
||||
$this->module->apiFileCreate($request, $response);
|
||||
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -148,7 +208,6 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
|
|||
$request->setData('title', 'Controller Test Title');
|
||||
|
||||
$this->module->apiEditorCreate($request, $response);
|
||||
|
||||
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
|
||||
}
|
||||
|
||||
|
|
@ -185,7 +244,6 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
|
|||
$request->setData('id', '1');
|
||||
|
||||
$this->module->apiEditorGet($request, $response);
|
||||
|
||||
self::assertEquals('Changed Title', $response->get('')['response']->title);
|
||||
}
|
||||
|
||||
|
|
|
|||
3
tests/Controller/test.md
Normal file
3
tests/Controller/test.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# Test Title
|
||||
|
||||
Some **test** text.
|
||||
|
|
@ -47,6 +47,9 @@ final class EditorDocMapperTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertEquals($doc->content, $docR->content);
|
||||
self::assertEquals($doc->title, $docR->title);
|
||||
self::assertEquals($doc->getVirtualPath(), $docR->getVirtualPath());
|
||||
|
||||
$docR2 = EditorDocMapper::getByVirtualPath('/some/test/path', 1);
|
||||
self::assertEquals($docR, \reset($docR2));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ namespace Modules\Tasks\tests\Models;
|
|||
|
||||
use Modules\Admin\Models\NullAccount;
|
||||
use Modules\Editor\Models\EditorDoc;
|
||||
use Modules\Media\Models\Media;
|
||||
use Modules\Tag\Models\Tag;
|
||||
|
||||
/**
|
||||
|
|
@ -45,6 +46,7 @@ final class EditorDocTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertEquals('', $this->doc->content);
|
||||
self::assertEquals('', $this->doc->plain);
|
||||
self::assertEquals([], $this->doc->getTags());
|
||||
self::assertEquals([], $this->doc->getMedia());
|
||||
self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $this->doc->createdAt->format('Y-m-d'));
|
||||
}
|
||||
|
||||
|
|
@ -111,6 +113,16 @@ final class EditorDocTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertCount(1, $this->doc->getTags());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Editor\Models\EditorDoc
|
||||
* @group module
|
||||
*/
|
||||
public function testMediaInputOutput() : void
|
||||
{
|
||||
$this->doc->addMedia(new Media());
|
||||
self::assertCount(1, $this->doc->getMedia());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Editor\Models\EditorDoc
|
||||
* @group module
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user