Implement missing tests

This commit is contained in:
Dennis Eichhorn 2019-06-09 22:15:48 +02:00
parent 719996dc07
commit 2be8f427c9
8 changed files with 110 additions and 19 deletions

View File

@ -310,7 +310,7 @@ class Head implements RenderableInterface
$rendered .= ' ' . $key . '="' . $attribute . '"'; $rendered .= ' ' . $key . '="' . $attribute . '"';
} }
$rendered .='></script>'; $rendered .= '></script>';
} }
} }
@ -328,14 +328,14 @@ class Head implements RenderableInterface
{ {
$rendered = ''; $rendered = '';
foreach ($this->assets as $uri => $asset) { foreach ($this->assets as $uri => $asset) {
if ($asset['type']=== AssetType::JSLATE) { if ($asset['type'] === AssetType::JSLATE) {
$rendered .= '<script src="' . $uri . '"'; $rendered .= '<script src="' . $uri . '"';
foreach ($asset['attributes'] as $key => $attribute) { foreach ($asset['attributes'] as $key => $attribute) {
$rendered .= ' ' . $key . '="' . $attribute . '"'; $rendered .= ' ' . $key . '="' . $attribute . '"';
} }
$rendered .='></script>'; $rendered .= '></script>';
} }
} }

View File

@ -68,4 +68,15 @@ class HeadTest extends \PHPUnit\Framework\TestCase
self::assertEquals('<script src="/path/late.js"></script>', $head->renderAssetsLate()); self::assertEquals('<script src="/path/late.js"></script>', $head->renderAssetsLate());
} }
public function testAssetWithAttribute() : void
{
$head = new Head();
$head->addAsset(AssetType::JSLATE, '/path/late.js', ['testkey' => 'testvalue']);
self::assertEquals('<script src="/path/late.js" testkey="testvalue"></script>', $head->renderAssetsLate());
$head->addAsset(AssetType::JS, '/path/late.js', ['testkey' => 'testvalue']);
self::assertEquals('<script src="/path/late.js" testkey="testvalue"></script>', $head->renderAssets());
}
} }

View File

@ -105,6 +105,31 @@ class RouterTest extends \PHPUnit\Framework\TestCase
); );
} }
public function testWithCSRF() : void
{
$router = new Router();
self::assertTrue($router->importFromFile(__Dir__ . '/routeTestCsrf.php'));
self::assertEquals(
[['dest' => '\Modules\Admin\Controller:viewCsrf']],
$router->route(
(new Request(
new Http('http://test.com/backend/admin/settings/csrf/something?test')
))->getUri()->getRoute(),
'csrf_string'
)
);
self::assertEquals(
[],
$router->route(
(new Request(
new Http('http://test.com/backend/admin/settings/csrf/something?test')
))->getUri()->getRoute(),
)
);
}
public function testWithPermissions() : void public function testWithPermissions() : void
{ {
$router = new Router(); $router = new Router();

View File

@ -0,0 +1,10 @@
<?php declare(strict_types=1);
return [
'^.*/backend/admin/settings/csrf.*$' => [
0 => [
'dest' => '\Modules\Admin\Controller:viewCsrf',
'verb' => 1,
'csrf' => true
],
],
];

View File

@ -1,9 +1,9 @@
<?php declare(strict_types=1); <?php declare(strict_types=1);
return [ return [
"^.*/backend/admin/settings/general.*$" => [ '^.*/backend/admin/settings/general.*$' => [
0 => [ 0 => [
"dest" => "\Modules\Admin\Controller:viewSettingsGeneral", 'dest' => '\Modules\Admin\Controller:viewSettingsGeneral',
"verb" => 1, 'verb' => 1,
], ],
], ],
]; ];

View File

@ -6,10 +6,10 @@ use phpOMS\Account\PermissionType;
use phpOMS\Router\RouteVerb; use phpOMS\Router\RouteVerb;
return [ return [
"^.*/backend/admin/settings/general.*$" => [ '^.*/backend/admin/settings/general.*$' => [
0 => [ 0 => [
"dest" => "\Modules\Admin\Controller:viewSettingsGeneral", 'dest' => '\Modules\Admin\Controller:viewSettingsGeneral',
"verb" => RouteVerb::GET, 'verb' => RouteVerb::GET,
'permission' => [ 'permission' => [
'module' => BackendController::MODULE_NAME, 'module' => BackendController::MODULE_NAME,
'type' => PermissionType::READ, 'type' => PermissionType::READ,

View File

@ -50,30 +50,65 @@ class HttpTest extends \PHPUnit\Framework\TestCase
self::assertFalse(Http::isValid('https:/google.de')); self::assertFalse(Http::isValid('https:/google.de'));
} }
public function testSetGet() : void public function testGeneralUriComponents() : void
{ {
$obj = new Http($uri = 'https://www.google.com/test/path.php?para1=abc&para2=2#frag'); $obj = new Http($uri = 'https://www.google.com/test/path.php?para1=abc&para2=2#frag');
self::assertEquals('', $obj->getRootPath());
self::assertEquals(0, $obj->getPathOffset());
self::assertEquals('https', $obj->getScheme()); self::assertEquals('https', $obj->getScheme());
self::assertEquals('www.google.com', $obj->getHost()); self::assertEquals('www.google.com', $obj->getHost());
self::assertEquals(80, $obj->getPort()); self::assertEquals(80, $obj->getPort());
self::assertEquals('', $obj->getPass()); self::assertEquals('', $obj->getPass());
self::assertEquals('', $obj->getUser()); self::assertEquals('', $obj->getUser());
self::assertEquals('/test/path', $obj->getPath());
self::assertEquals('/test/path?para1=abc&para2=2', $obj->getRoute());
self::assertEquals('test', $obj->getPathElement(0));
self::assertEquals('para1=abc&para2=2', $obj->getQuery());
self::assertEquals(['para1' => 'abc', 'para2' => '2'], $obj->getQueryArray());
self::assertEquals('2', $obj->getQuery('para2'));
self::assertEquals('frag', $obj->getFragment());
self::assertEquals('https://www.google.com', $obj->getBase()); self::assertEquals('https://www.google.com', $obj->getBase());
self::assertEquals($uri, $obj->__toString()); self::assertEquals($uri, $obj->__toString());
self::assertEquals('www.google.com:80', $obj->getAuthority()); self::assertEquals('www.google.com:80', $obj->getAuthority());
self::assertEquals('', $obj->getUserInfo()); self::assertEquals('', $obj->getUserInfo());
}
public function testRootPath() : void
{
$obj = new Http('https://www.google.com/test/path.php?para1=abc&para2=2#frag');
self::assertEquals('', $obj->getRootPath());
$obj->setRootPath('a'); $obj->setRootPath('a');
self::assertEquals('a', $obj->getRootPath()); self::assertEquals('a', $obj->getRootPath());
} }
public function testPathOffset() : void
{
$obj = new Http('https://www.google.com/test/path.php?para1=abc&para2=2#frag');
self::assertEquals(0, $obj->getPathOffset());
$obj->setPathOffset(2);
self::assertEquals(2, $obj->getPathOffset());
}
public function testSubdmonain() : void
{
$obj = new Http('https://www.google.com/test/path.php?para1=abc&para2=2#frag');
self::assertEquals('www', $obj->getSubmdomain());
$obj = new Http('https://google.com/test/path.php?para1=abc&para2=2#frag');
self::assertEquals('', $obj->getSubmdomain());
$obj = new Http('https://test.www.google.com/test/path.php?para1=abc&para2=2#frag');
self::assertEquals('test.www', $obj->getSubmdomain());
}
public function testQueryData() : void
{
$obj = new Http('https://www.google.com/test/path.php?para1=abc&para2=2#frag');
self::assertEquals('para1=abc&para2=2', $obj->getQuery());
self::assertEquals(['para1' => 'abc', 'para2' => '2'], $obj->getQueryArray());
self::assertEquals('2', $obj->getQuery('para2'));
self::assertEquals('frag', $obj->getFragment());
}
public function testPathData() : void
{
$obj = new Http('https://www.google.com/test/path.php?para1=abc&para2=2#frag');
self::assertEquals('/test/path', $obj->getPath());
self::assertEquals('/test/path?para1=abc&para2=2', $obj->getRoute());
self::assertEquals('test', $obj->getPathElement(0));
}
} }

View File

@ -113,6 +113,16 @@ class ViewTest extends \PHPUnit\Framework\TestCase
self::assertFalse($view->getView('test')); self::assertFalse($view->getView('test'));
} }
public function testOverwritingView() : void
{
$view = new View();
$tView = new View();
self::assertTrue($view->addView('test', $tView));
self::assertTrue($view->addView('test', $tView, 0, true));
self::assertFalse($view->addView('test', $tView));
}
public function testRender() : void public function testRender() : void
{ {
$view = new View(); $view = new View();