mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-02-12 06:48:41 +00:00
impl. additional unit tests
This commit is contained in:
parent
5fb18505dc
commit
4accb7b716
|
|
@ -114,8 +114,9 @@ final class L11nManager
|
||||||
/** @noinspection PhpIncludeInspection */
|
/** @noinspection PhpIncludeInspection */
|
||||||
$lang = include $file;
|
$lang = include $file;
|
||||||
|
|
||||||
foreach ($lang as $code => $translation)
|
foreach ($lang as $code => $translation) {
|
||||||
$this->loadLanguage($code, $from, $translation);
|
$this->loadLanguage($code, $from, $translation);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -233,7 +233,7 @@ final class HttpHeader extends HeaderAbstract
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($this->header as $name => $arr) {
|
foreach ($this->header as $name => $arr) {
|
||||||
foreach ($arr as $ele => $value) {
|
foreach ($arr as $value) {
|
||||||
\header($name . ': ' . $value);
|
\header($name . ': ' . $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -208,7 +208,9 @@ final class HttpResponse extends ResponseAbstract implements RenderableInterface
|
||||||
*/
|
*/
|
||||||
public function endAllOutputBuffering() : void
|
public function endAllOutputBuffering() : void
|
||||||
{
|
{
|
||||||
$this->header->push();
|
if (!$this->header->isLocked()) {
|
||||||
|
$this->header->push();
|
||||||
|
}
|
||||||
|
|
||||||
$levels = \ob_get_level();
|
$levels = \ob_get_level();
|
||||||
for ($i = 0; $i < $levels; ++$i) {
|
for ($i = 0; $i < $levels; ++$i) {
|
||||||
|
|
|
||||||
|
|
@ -92,14 +92,14 @@ abstract class RequestAbstract implements MessageInterface
|
||||||
|
|
||||||
$key = \mb_strtolower($key);
|
$key = \mb_strtolower($key);
|
||||||
|
|
||||||
if ($type === null) {
|
|
||||||
return $this->data[$key] ?? null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset($this->data[$key])) {
|
if (!isset($this->data[$key])) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($type === null) {
|
||||||
|
return $this->data[$key] ?? null;
|
||||||
|
}
|
||||||
|
|
||||||
switch ($type) {
|
switch ($type) {
|
||||||
case 'int':
|
case 'int':
|
||||||
return (int) $this->data[$key];
|
return (int) $this->data[$key];
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,7 @@ final class Argument implements UriInterface
|
||||||
$end = \stripos($uri, ' ', $start + 1);
|
$end = \stripos($uri, ' ', $start + 1);
|
||||||
|
|
||||||
if ($end === false) {
|
if ($end === false) {
|
||||||
$end = \strlen($uri);
|
$end = \strlen($uri); // @codeCoverageIgnore
|
||||||
}
|
}
|
||||||
|
|
||||||
$path = $start < 8 ? \substr($uri, $start + 1, $end - $start - 1) : $uri;
|
$path = $start < 8 ? \substr($uri, $start + 1, $end - $start - 1) : $uri;
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ declare(strict_types=1);
|
||||||
namespace phpOMS\Utils\IO\Zip;
|
namespace phpOMS\Utils\IO\Zip;
|
||||||
|
|
||||||
use phpOMS\System\File\FileUtils;
|
use phpOMS\System\File\FileUtils;
|
||||||
|
use phpOMS\System\File\Local\Directory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Zip class for handling zip files.
|
* Zip class for handling zip files.
|
||||||
|
|
@ -102,6 +103,10 @@ class Tar implements ArchiveInterface
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!\is_dir($destination)) {
|
||||||
|
Directory::create($destination, recursive: true);
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$destination = \str_replace('\\', '/', $destination);
|
$destination = \str_replace('\\', '/', $destination);
|
||||||
$destination = \rtrim($destination, '/');
|
$destination = \rtrim($destination, '/');
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ final class Iban extends ValidatorAbstract
|
||||||
|
|
||||||
$temp = \substr($value, 0, 2);
|
$temp = \substr($value, 0, 2);
|
||||||
if ($temp === false) {
|
if ($temp === false) {
|
||||||
return false;
|
return false; // @codeCoverageIgnore
|
||||||
}
|
}
|
||||||
|
|
||||||
$enumName = 'C_' . \strtoupper($temp);
|
$enumName = 'C_' . \strtoupper($temp);
|
||||||
|
|
|
||||||
|
|
@ -39,5 +39,7 @@ class CountryTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals('', $obj->getCode3());
|
self::assertEquals('', $obj->getCode3());
|
||||||
self::assertEquals(0, $obj->getNumeric());
|
self::assertEquals(0, $obj->getNumeric());
|
||||||
self::assertEquals('', $obj->getSubdevision());
|
self::assertEquals('', $obj->getSubdevision());
|
||||||
|
self::assertEquals('', $obj->getRegion());
|
||||||
|
self::assertFalse($obj->isDeveloped());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,5 +39,6 @@ class CurrencyTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals(0, $obj->getSubunits());
|
self::assertEquals(0, $obj->getSubunits());
|
||||||
self::assertEquals('', $obj->getDecimals());
|
self::assertEquals('', $obj->getDecimals());
|
||||||
self::assertEquals('', $obj->getCountries());
|
self::assertEquals('', $obj->getCountries());
|
||||||
|
self::assertEquals('', $obj->getCode());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -96,16 +96,31 @@ class L11nManagerTest extends \PHPUnit\Framework\TestCase
|
||||||
* @covers phpOMS\Localization\L11nManager
|
* @covers phpOMS\Localization\L11nManager
|
||||||
* @group framework
|
* @group framework
|
||||||
*/
|
*/
|
||||||
public function testLanguageFile() : void
|
public function testLanguageFromLanguageFile() : void
|
||||||
{
|
{
|
||||||
$this->l11nManager2 = new L11nManager('Api');
|
$this->l11nManager2 = new L11nManager('Api');
|
||||||
$this->l11nManager2->loadLanguageFromFile('en', 'Test', __DIR__ . '/langTestFile.php');
|
$this->l11nManager2->loadLanguageFromFile('en', 'Test', __DIR__ . '/langTestFile.php');
|
||||||
|
$this->l11nManager2->loadLanguageFromFile('en', 'Test', __DIR__ . '/invalidLangTestFile.php'); // the l11n manager doesn't do anything for invalid lang file paths
|
||||||
self::assertEquals('value', $this->l11nManager2->getHtml('en', 'Test', 'RandomThemeDoesNotMatterAlreadyLoaded', 'key'));
|
self::assertEquals('value', $this->l11nManager2->getHtml('en', 'Test', 'RandomThemeDoesNotMatterAlreadyLoaded', 'key'));
|
||||||
|
|
||||||
self::assertEquals(['Test' => ['key' => 'value']], $this->l11nManager2->getModuleLanguage('en'));
|
self::assertEquals(['Test' => ['key' => 'value']], $this->l11nManager2->getModuleLanguage('en'));
|
||||||
self::assertEquals(['key' => 'value'], $this->l11nManager2->getModuleLanguage('en', 'Test'));
|
self::assertEquals(['key' => 'value'], $this->l11nManager2->getModuleLanguage('en', 'Test'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox Language data can be loaded from a file
|
||||||
|
* @covers phpOMS\Localization\L11nManager
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testLanguageMultipleLanguagesFromSingleFile() : void
|
||||||
|
{
|
||||||
|
$this->l11nManager2 = new L11nManager('Api');
|
||||||
|
$this->l11nManager2->loadLanguageFile('Test', __DIR__ . '/multiLangTestFile.php');
|
||||||
|
$this->l11nManager2->loadLanguageFile('Test', __DIR__ . '/invalidLangTestFile.php'); // the l11n manager doesn't do anything for invalid lang file paths
|
||||||
|
self::assertEquals('Test_EN', $this->l11nManager2->getHtml('en', 'Test', 'RandomThemeDoesNotMatterAlreadyLoaded', 'key'));
|
||||||
|
self::assertEquals('Test_DE', $this->l11nManager2->getHtml('de', 'Test', 'RandomThemeDoesNotMatterAlreadyLoaded', 'key'));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox The numeric value can be printed based on the localization
|
* @testdox The numeric value can be printed based on the localization
|
||||||
* @covers phpOMS\Localization\L11nManager
|
* @covers phpOMS\Localization\L11nManager
|
||||||
|
|
@ -163,6 +178,7 @@ class L11nManagerTest extends \PHPUnit\Framework\TestCase
|
||||||
$date = new \DateTime('2020-01-01 13:45:22');
|
$date = new \DateTime('2020-01-01 13:45:22');
|
||||||
self::assertEquals('2020.01.01', $this->l11nManager->getDateTime($l11n, $date, 'medium'));
|
self::assertEquals('2020.01.01', $this->l11nManager->getDateTime($l11n, $date, 'medium'));
|
||||||
self::assertEquals('2020.01.01 01:45', $this->l11nManager->getDateTime($l11n, $date, 'long'));
|
self::assertEquals('2020.01.01 01:45', $this->l11nManager->getDateTime($l11n, $date, 'long'));
|
||||||
|
self::assertEquals('', $this->l11nManager->getDateTime($l11n, null, 'long'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -330,6 +330,17 @@ class LocalizationTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals([1], $this->localization->getSpeed());
|
self::assertEquals([1], $this->localization->getSpeed());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox Localization data can be loaded from a locale file
|
||||||
|
* @covers phpOMS\Localization\Localization
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testLocalizationFromLanguageCode() : void
|
||||||
|
{
|
||||||
|
$l11n = Localization::fromLanguage(ISO639x1Enum::_DE);
|
||||||
|
self::assertEquals(ISO4217CharEnum::_EUR, $l11n->getCurrency());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox Localization data can be loaded from a locale file
|
* @testdox Localization data can be loaded from a locale file
|
||||||
* @covers phpOMS\Localization\Localization
|
* @covers phpOMS\Localization\Localization
|
||||||
|
|
@ -337,8 +348,8 @@ class LocalizationTest extends \PHPUnit\Framework\TestCase
|
||||||
*/
|
*/
|
||||||
public function testLocalizationLoading() : void
|
public function testLocalizationLoading() : void
|
||||||
{
|
{
|
||||||
$this->localization->loadFromLanguage(ISO639x1Enum::_EN);
|
$this->localization->loadFromLanguage(ISO639x1Enum::_DE);
|
||||||
self::assertEquals(ISO4217CharEnum::_USD, $this->localization->getCurrency());
|
self::assertEquals(ISO4217CharEnum::_EUR, $this->localization->getCurrency());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -348,7 +359,7 @@ class LocalizationTest extends \PHPUnit\Framework\TestCase
|
||||||
*/
|
*/
|
||||||
public function testLocalizationSerialize() : void
|
public function testLocalizationSerialize() : void
|
||||||
{
|
{
|
||||||
$this->localization->loadFromLanguage(ISO639x1Enum::_EN);
|
$this->localization->loadFromLanguage(ISO639x1Enum::_DE);
|
||||||
$l11n1 = $this->localization->jsonSerialize();
|
$l11n1 = $this->localization->jsonSerialize();
|
||||||
|
|
||||||
$l11nObj = Localization::fromJson($l11n1);
|
$l11nObj = Localization::fromJson($l11n1);
|
||||||
|
|
@ -364,8 +375,8 @@ class LocalizationTest extends \PHPUnit\Framework\TestCase
|
||||||
*/
|
*/
|
||||||
public function testInvalidCountryLocalizationLoading() : void
|
public function testInvalidCountryLocalizationLoading() : void
|
||||||
{
|
{
|
||||||
$this->localization->loadFromLanguage(ISO639x1Enum::_EN, 'ABC');
|
$this->localization->loadFromLanguage(ISO639x1Enum::_DE, 'ABC');
|
||||||
self::assertEquals(ISO4217CharEnum::_USD, $this->localization->getCurrency());
|
self::assertEquals(ISO4217CharEnum::_EUR, $this->localization->getCurrency());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
14
tests/Localization/multiLangTestFile.php
Normal file
14
tests/Localization/multiLangTestFile.php
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
<?php declare(strict_types=1);
|
||||||
|
|
||||||
|
return [
|
||||||
|
'en' => [
|
||||||
|
'Test' => [ // Identifier e.g. Module/application
|
||||||
|
'key' => 'Test_EN',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'de' => [
|
||||||
|
'Test' => [ // Identifier e.g. Module/application
|
||||||
|
'key' => 'Test_DE',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
@ -23,6 +23,7 @@ use phpOMS\Message\Http\Rest;
|
||||||
use phpOMS\Router\RouteVerb;
|
use phpOMS\Router\RouteVerb;
|
||||||
use phpOMS\System\MimeType;
|
use phpOMS\System\MimeType;
|
||||||
use phpOMS\Uri\HttpUri;
|
use phpOMS\Uri\HttpUri;
|
||||||
|
use phpOMS\Localization\ISO639x1Enum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox phpOMS\tests\Message\Http\HttpRequestTest: HttpRequest wrapper for http requests
|
* @testdox phpOMS\tests\Message\Http\HttpRequestTest: HttpRequest wrapper for http requests
|
||||||
|
|
@ -106,6 +107,18 @@ class HttpRequestTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals(RouteVerb::PUT, $request->getRouteVerb());
|
self::assertEquals(RouteVerb::PUT, $request->getRouteVerb());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox The request referer can be returned
|
||||||
|
* @covers phpOMS\Message\Http\HttpRequest<extended>
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testRequestRefererOutput() : void
|
||||||
|
{
|
||||||
|
$request = new HttpRequest(new HttpUri(''), $l11n = new Localization());
|
||||||
|
|
||||||
|
self::assertEquals('', $request->getReferer());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox The route verb gets correctly inferred from the request method
|
* @testdox The route verb gets correctly inferred from the request method
|
||||||
* @covers phpOMS\Message\Http\HttpRequest<extended>
|
* @covers phpOMS\Message\Http\HttpRequest<extended>
|
||||||
|
|
@ -137,6 +150,21 @@ class HttpRequestTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals('http://www.google.com/test/path', $request->__toString());
|
self::assertEquals('http://www.google.com/test/path', $request->__toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox The request langauge can be returned
|
||||||
|
* @covers phpOMS\Message\Http\HttpRequest<extended>
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testLangaugeOutput() : void
|
||||||
|
{
|
||||||
|
$request = new HttpRequest(new HttpUri('http://www.google.com/test/path'), $l11n = new Localization());
|
||||||
|
|
||||||
|
$request->header->l11n = new Localization();
|
||||||
|
$request->header->l11n->setLanguage(ISO639x1Enum::_DE);
|
||||||
|
|
||||||
|
self::assertEquals(ISO639x1Enum::_DE, $request->getLanguage());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox The url hashes for the different paths get correctly generated
|
* @testdox The url hashes for the different paths get correctly generated
|
||||||
* @covers phpOMS\Message\Http\HttpRequest<extended>
|
* @covers phpOMS\Message\Http\HttpRequest<extended>
|
||||||
|
|
@ -155,21 +183,6 @@ class HttpRequestTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals($l11n, $request->header->l11n);
|
self::assertEquals($l11n, $request->header->l11n);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @testdox Request data can be set and returned
|
|
||||||
* @covers phpOMS\Message\Http\HttpRequest<extended>
|
|
||||||
* @group framework
|
|
||||||
*/
|
|
||||||
public function testDataInputOutput() : void
|
|
||||||
{
|
|
||||||
$request = new HttpRequest(new HttpUri('http://www.google.com/test/path'), $l11n = new Localization());
|
|
||||||
|
|
||||||
self::assertTrue($request->setData('key', 'value'));
|
|
||||||
self::assertEquals('value', $request->getData('key'));
|
|
||||||
self::assertTrue($request->hasData('key'));
|
|
||||||
self::assertEquals(['key' => 'value'], $request->getData());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox Request data can be forcefully overwritten
|
* @testdox Request data can be forcefully overwritten
|
||||||
* @covers phpOMS\Message\Http\HttpRequest<extended>
|
* @covers phpOMS\Message\Http\HttpRequest<extended>
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,8 @@ namespace phpOMS\tests\Message\Http;
|
||||||
|
|
||||||
use phpOMS\Message\Http\HttpResponse;
|
use phpOMS\Message\Http\HttpResponse;
|
||||||
use phpOMS\System\MimeType;
|
use phpOMS\System\MimeType;
|
||||||
|
use phpOMS\Localization\Localization;
|
||||||
|
use phpOMS\Localization\ISO639x1Enum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox phpOMS\tests\Message\Http\ResponseTest: HttpResponse wrapper for http responses
|
* @testdox phpOMS\tests\Message\Http\ResponseTest: HttpResponse wrapper for http responses
|
||||||
|
|
@ -83,6 +85,40 @@ class ResponseTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertFalse($this->response->remove('a'));
|
self::assertFalse($this->response->remove('a'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox Test disabling output buffering
|
||||||
|
* @covers phpOMS\Message\Http\HttpResponse<extended>
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testEndAllOutputBuffering() : void
|
||||||
|
{
|
||||||
|
if (\headers_sent()) {
|
||||||
|
$this->response->header->lock();
|
||||||
|
}
|
||||||
|
$start = \ob_get_level();
|
||||||
|
|
||||||
|
\ob_start();
|
||||||
|
\ob_start();
|
||||||
|
|
||||||
|
self::assertEquals($start + 2, \ob_get_level());
|
||||||
|
$this->response->endAllOutputBuffering();
|
||||||
|
self::assertEquals(0, \ob_get_level());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox The response langauge can be returned
|
||||||
|
* @covers phpOMS\Message\Http\HttpResponse<extended>
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testLangaugeOutput() : void
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->response->header->l11n = new Localization();
|
||||||
|
$this->response->header->l11n->setLanguage(ISO639x1Enum::_DE);
|
||||||
|
|
||||||
|
self::assertEquals(ISO639x1Enum::_DE, $this->response->getLanguage());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox Response data can be turned into an array
|
* @testdox Response data can be turned into an array
|
||||||
* @covers phpOMS\Message\Http\HttpResponse<extended>
|
* @covers phpOMS\Message\Http\HttpResponse<extended>
|
||||||
|
|
|
||||||
95
tests/Message/RequestAbstractTest.php
Normal file
95
tests/Message/RequestAbstractTest.php
Normal file
|
|
@ -0,0 +1,95 @@
|
||||||
|
<?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 phpOMS\tests\Message;
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../Autoloader.php';
|
||||||
|
|
||||||
|
use phpOMS\Localization\ISO639x1Enum;
|
||||||
|
use phpOMS\Message\RequestAbstract;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox phpOMS\tests\Message\RequestAbstractTest: Abstract request
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
class RequestAbstractTest extends \PHPUnit\Framework\TestCase
|
||||||
|
{
|
||||||
|
protected $request = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function setUp() : void
|
||||||
|
{
|
||||||
|
$this->request = new class() extends RequestAbstract
|
||||||
|
{
|
||||||
|
public function getOrigin() : string
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getBody(bool $optimize = false) : string
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox Request data can be set and returned
|
||||||
|
* @covers phpOMS\Message\RequestAbstract
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testDataInputOutput() : void
|
||||||
|
{
|
||||||
|
self::assertTrue($this->request->setData('key', 'value'));
|
||||||
|
self::assertEquals('value', $this->request->getData('key'));
|
||||||
|
self::assertTrue($this->request->hasData('key'));
|
||||||
|
self::assertEquals(['key' => 'value'], $this->request->getData());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox A invalid data key returns null
|
||||||
|
* @covers phpOMS\Message\RequestAbstract
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testInvalidDataKeyOutput() : void
|
||||||
|
{
|
||||||
|
self::assertEquals(null, $this->request->getData('invalid'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox Request data can be set and returned with correct types
|
||||||
|
* @covers phpOMS\Message\RequestAbstract
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testDataTypeInputOutput() : void
|
||||||
|
{
|
||||||
|
$this->request->setData('key1', 1);
|
||||||
|
self::assertEquals('1', $this->request->getData('key1', 'string'));
|
||||||
|
|
||||||
|
$this->request->setData('key2', '2');
|
||||||
|
self::assertEquals(2, $this->request->getData('key2', 'int'));
|
||||||
|
|
||||||
|
$this->request->setData('key3', '1');
|
||||||
|
self::assertEquals(true, $this->request->getData('key3', 'bool'));
|
||||||
|
|
||||||
|
$this->request->setData('key4', '1.23');
|
||||||
|
self::assertEquals(1.23, $this->request->getData('key4', 'float'));
|
||||||
|
|
||||||
|
$this->request->setData('key5', 1);
|
||||||
|
self::assertEquals(1, $this->request->getData('key5', 'invalid'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -83,6 +83,22 @@ class SocketRouterTest extends \PHPUnit\Framework\TestCase
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox The routes can be removed from the router
|
||||||
|
* @covers phpOMS\Router\SocketRouter
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testRouteClearing() : void
|
||||||
|
{
|
||||||
|
self::assertTrue($this->router->importFromFile(__DIR__ . '/socketRouterTestFile.php'));
|
||||||
|
$this->router->clear();
|
||||||
|
|
||||||
|
self::assertEquals(
|
||||||
|
[],
|
||||||
|
$this->router->route('backend_admin -settings=general -t 123')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox Routes can be added dynamically
|
* @testdox Routes can be added dynamically
|
||||||
* @covers phpOMS\Router\SocketRouter
|
* @covers phpOMS\Router\SocketRouter
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,26 @@ class WebRouterTest extends \PHPUnit\Framework\TestCase
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox The routes can be removed from the router
|
||||||
|
* @covers phpOMS\Router\WebRouter
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testRouteClearing() : void
|
||||||
|
{
|
||||||
|
self::assertTrue($this->router->importFromFile(__DIR__ . '/webRouterTestFile.php'));
|
||||||
|
$this->router->clear();
|
||||||
|
|
||||||
|
self::assertEquals(
|
||||||
|
[],
|
||||||
|
$this->router->route(
|
||||||
|
(new HttpRequest(
|
||||||
|
new HttpUri('http://test.com/backend/admin/settings/general/something?test')
|
||||||
|
))->uri->getRoute()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox Invalid routing verbs don't match even if the route matches
|
* @testdox Invalid routing verbs don't match even if the route matches
|
||||||
* @covers phpOMS\Router\WebRouter
|
* @covers phpOMS\Router\WebRouter
|
||||||
|
|
|
||||||
|
|
@ -217,4 +217,27 @@ class LocationTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals($expected, $this->location->jsonSerialize());
|
self::assertEquals($expected, $this->location->jsonSerialize());
|
||||||
self::assertEquals(\json_encode($this->location->jsonSerialize()), $this->location->serialize());
|
self::assertEquals(\json_encode($this->location->jsonSerialize()), $this->location->serialize());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox The location can unserialized
|
||||||
|
* @covers phpOMS\Stdlib\Base\Location
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testUnserialize() : void
|
||||||
|
{
|
||||||
|
$expected = [
|
||||||
|
'postal' => '0123456789',
|
||||||
|
'city' => 'city',
|
||||||
|
'country' => 'Country',
|
||||||
|
'address' => 'Some address here',
|
||||||
|
'state' => 'This is a state 123',
|
||||||
|
'geo' => [
|
||||||
|
'lat' => 12.1,
|
||||||
|
'long' => 11.2,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
|
$this->location->unserialize(\json_encode($expected));
|
||||||
|
self::assertEquals(\json_encode($expected), $this->location->serialize());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,4 +39,22 @@ class MimeTypeTest extends \PHPUnit\Framework\TestCase
|
||||||
|
|
||||||
self::assertTrue(true);
|
self::assertTrue(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers phpOMS\System\MimeType
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testExtensionToMime() : void
|
||||||
|
{
|
||||||
|
self::assertEquals('application/pdf', MimeType::extensionToMime('pdf'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers phpOMS\System\MimeType
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testInvalidExtensionToMime() : void
|
||||||
|
{
|
||||||
|
self::assertEquals('application/octet-stream', MimeType::extensionToMime('INVALID'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -202,6 +202,20 @@ class HttpUriTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals('new', $obj->getPath());
|
self::assertEquals('new', $obj->getPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers phpOMS\Uri\HttpUri
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testPathElementInputOutput() : void
|
||||||
|
{
|
||||||
|
$obj = new HttpUri('https://www.google.com/test/second/path.php?para1=abc¶2=2#frag');
|
||||||
|
|
||||||
|
self::assertEquals(['test', 'second', 'path'], $obj->getPathElements());
|
||||||
|
|
||||||
|
$obj->setPath('new/test');
|
||||||
|
self::assertEquals(['new', 'test'], $obj->getPathElements());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox The path offset can be set and returned
|
* @testdox The path offset can be set and returned
|
||||||
* @covers phpOMS\Uri\HttpUri
|
* @covers phpOMS\Uri\HttpUri
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,27 @@ class TarTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals($e, \file_get_contents(__DIR__ . '/test/sub/test e.txt'));
|
self::assertEquals($e, \file_get_contents(__DIR__ . '/test/sub/test e.txt'));
|
||||||
|
|
||||||
\unlink(__DIR__ . '/test.tar');
|
\unlink(__DIR__ . '/test.tar');
|
||||||
|
|
||||||
|
/* @todo: fix this, this is not working "cannot open test.tar"
|
||||||
|
// second test
|
||||||
|
self::assertTrue(Tar::pack(
|
||||||
|
[__DIR__ . '/test' => 'test'],
|
||||||
|
__DIR__ . '/test.tar'
|
||||||
|
));
|
||||||
|
|
||||||
|
self::assertTrue(Tar::unpack(__DIR__ . '/test.tar', __DIR__ . '/new_dir'));
|
||||||
|
self::assertFileExists(__DIR__ . '/new_dir/test');
|
||||||
|
self::assertEquals($c, \file_get_contents(__DIR__ . '/new_dir/test/test c.txt'));
|
||||||
|
|
||||||
|
\unlink(__DIR__ . '/new_dir/test/test c.txt');
|
||||||
|
\unlink(__DIR__ . '/new_dir/test/test d.txt');
|
||||||
|
\unlink(__DIR__ . '/new_dir/test/sub/test e.txt');
|
||||||
|
\rmdir(__DIR__ . '/new_dir/test/sub');
|
||||||
|
\rmdir(__DIR__ . '/new_dir/test');
|
||||||
|
\rmdir(__DIR__ . '/new_dir');
|
||||||
|
|
||||||
|
\unlink(__DIR__ . '/test.tar');
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,25 @@ class ZipTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals($e, \file_get_contents(__DIR__ . '/test/sub/test e.txt'));
|
self::assertEquals($e, \file_get_contents(__DIR__ . '/test/sub/test e.txt'));
|
||||||
|
|
||||||
\unlink(__DIR__ . '/test.zip');
|
\unlink(__DIR__ . '/test.zip');
|
||||||
|
|
||||||
|
// second test
|
||||||
|
self::assertTrue(Zip::pack(
|
||||||
|
__DIR__ . '/test',
|
||||||
|
__DIR__ . '/test.zip'
|
||||||
|
));
|
||||||
|
|
||||||
|
self::assertTrue(Zip::unpack(__DIR__ . '/test.zip', __DIR__ . '/new_dir'));
|
||||||
|
self::assertFileExists(__DIR__ . '/new_dir/test');
|
||||||
|
self::assertEquals($c, \file_get_contents(__DIR__ . '/new_dir/test/test c.txt'));
|
||||||
|
|
||||||
|
\unlink(__DIR__ . '/new_dir/test/test c.txt');
|
||||||
|
\unlink(__DIR__ . '/new_dir/test/test d.txt');
|
||||||
|
\unlink(__DIR__ . '/new_dir/test/sub/test e.txt');
|
||||||
|
\rmdir(__DIR__ . '/new_dir/test/sub');
|
||||||
|
\rmdir(__DIR__ . '/new_dir/test');
|
||||||
|
\rmdir(__DIR__ . '/new_dir');
|
||||||
|
|
||||||
|
\unlink(__DIR__ . '/test.zip');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -228,4 +228,16 @@ class StringUtilsTest extends \PHPUnit\Framework\TestCase
|
||||||
StringUtils::createDiffMarkup($original, $new)
|
StringUtils::createDiffMarkup($original, $new)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox A string can be validated for shell safety
|
||||||
|
* @covers phpOMS\Utils\StringUtils
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testIsShellSafe() : void
|
||||||
|
{
|
||||||
|
self::assertTrue(StringUtils::isShellSafe('asdf'));
|
||||||
|
self::assertFalse(StringUtils::isShellSafe('&#;`|*?~<>^()[]{}$\\'));
|
||||||
|
self::assertFalse(StringUtils::isShellSafe('™'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -389,6 +389,19 @@ class ViewTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals('<strong>Test</strong>', $view->render());
|
self::assertEquals('<strong>Test</strong>', $view->render());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox A view template can be build
|
||||||
|
* @covers phpOMS\Views\View<extended>
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testBuild() : void
|
||||||
|
{
|
||||||
|
$view = new View();
|
||||||
|
|
||||||
|
$view->setTemplate('/phpOMS/tests/Views/testTemplate');
|
||||||
|
self::assertEquals('<strong>Test</strong>', $view->build());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox A view template can be serialized
|
* @testdox A view template can be serialized
|
||||||
* @covers phpOMS\Views\View<extended>
|
* @covers phpOMS\Views\View<extended>
|
||||||
|
|
@ -440,6 +453,19 @@ class ViewTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals('', $view->render());
|
self::assertEquals('', $view->render());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox Building a invalid template throws a PathException
|
||||||
|
* @covers phpOMS\Views\View<extended>
|
||||||
|
* @group framework
|
||||||
|
*/
|
||||||
|
public function testBuildException() : void
|
||||||
|
{
|
||||||
|
$view = new View($this->app->l11nManager);
|
||||||
|
$view->setTemplate('something.txt');
|
||||||
|
|
||||||
|
self::assertEquals('', $view->build());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox Serializing a invalid template throws a PathException
|
* @testdox Serializing a invalid template throws a PathException
|
||||||
* @covers phpOMS\Views\View<extended>
|
* @covers phpOMS\Views\View<extended>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user