diff --git a/Model/Html/Head.php b/Model/Html/Head.php index f0d743416..32e550aef 100644 --- a/Model/Html/Head.php +++ b/Model/Html/Head.php @@ -310,7 +310,7 @@ class Head implements RenderableInterface $rendered .= ' ' . $key . '="' . $attribute . '"'; } - $rendered .='>'; + $rendered .= '>'; } } @@ -328,14 +328,14 @@ class Head implements RenderableInterface { $rendered = ''; foreach ($this->assets as $uri => $asset) { - if ($asset['type']=== AssetType::JSLATE) { + if ($asset['type'] === AssetType::JSLATE) { $rendered .= ''; + $rendered .= '>'; } } diff --git a/tests/Model/Html/HeadTest.php b/tests/Model/Html/HeadTest.php index 0956b3b87..5f7488642 100644 --- a/tests/Model/Html/HeadTest.php +++ b/tests/Model/Html/HeadTest.php @@ -68,4 +68,15 @@ class HeadTest extends \PHPUnit\Framework\TestCase self::assertEquals('', $head->renderAssetsLate()); } + + public function testAssetWithAttribute() : void + { + $head = new Head(); + + $head->addAsset(AssetType::JSLATE, '/path/late.js', ['testkey' => 'testvalue']); + self::assertEquals('', $head->renderAssetsLate()); + + $head->addAsset(AssetType::JS, '/path/late.js', ['testkey' => 'testvalue']); + self::assertEquals('', $head->renderAssets()); + } } diff --git a/tests/Router/RouterTest.php b/tests/Router/RouterTest.php index 404fccfe6..280022751 100644 --- a/tests/Router/RouterTest.php +++ b/tests/Router/RouterTest.php @@ -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 { $router = new Router(); diff --git a/tests/Router/routeTestCsrf.php b/tests/Router/routeTestCsrf.php new file mode 100644 index 000000000..3a2521745 --- /dev/null +++ b/tests/Router/routeTestCsrf.php @@ -0,0 +1,10 @@ + [ + 0 => [ + 'dest' => '\Modules\Admin\Controller:viewCsrf', + 'verb' => 1, + 'csrf' => true + ], + ], +]; diff --git a/tests/Router/routerTestFile.php b/tests/Router/routerTestFile.php index 71703ccf7..5c354d503 100644 --- a/tests/Router/routerTestFile.php +++ b/tests/Router/routerTestFile.php @@ -1,9 +1,9 @@ [ + '^.*/backend/admin/settings/general.*$' => [ 0 => [ - "dest" => "\Modules\Admin\Controller:viewSettingsGeneral", - "verb" => 1, + 'dest' => '\Modules\Admin\Controller:viewSettingsGeneral', + 'verb' => 1, ], ], ]; diff --git a/tests/Router/routerTestFilePermission.php b/tests/Router/routerTestFilePermission.php index 5e2a02c2d..22563f525 100644 --- a/tests/Router/routerTestFilePermission.php +++ b/tests/Router/routerTestFilePermission.php @@ -6,10 +6,10 @@ use phpOMS\Account\PermissionType; use phpOMS\Router\RouteVerb; return [ - "^.*/backend/admin/settings/general.*$" => [ + '^.*/backend/admin/settings/general.*$' => [ 0 => [ - "dest" => "\Modules\Admin\Controller:viewSettingsGeneral", - "verb" => RouteVerb::GET, + 'dest' => '\Modules\Admin\Controller:viewSettingsGeneral', + 'verb' => RouteVerb::GET, 'permission' => [ 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, diff --git a/tests/Uri/HttpTest.php b/tests/Uri/HttpTest.php index 44ef359fd..96bf0d05a 100644 --- a/tests/Uri/HttpTest.php +++ b/tests/Uri/HttpTest.php @@ -50,30 +50,65 @@ class HttpTest extends \PHPUnit\Framework\TestCase 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¶2=2#frag'); - self::assertEquals('', $obj->getRootPath()); - self::assertEquals(0, $obj->getPathOffset()); self::assertEquals('https', $obj->getScheme()); self::assertEquals('www.google.com', $obj->getHost()); self::assertEquals(80, $obj->getPort()); self::assertEquals('', $obj->getPass()); self::assertEquals('', $obj->getUser()); - self::assertEquals('/test/path', $obj->getPath()); - self::assertEquals('/test/path?para1=abc¶2=2', $obj->getRoute()); - self::assertEquals('test', $obj->getPathElement(0)); - self::assertEquals('para1=abc¶2=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($uri, $obj->__toString()); self::assertEquals('www.google.com:80', $obj->getAuthority()); self::assertEquals('', $obj->getUserInfo()); + } + + public function testRootPath() : void + { + $obj = new Http('https://www.google.com/test/path.php?para1=abc¶2=2#frag'); + self::assertEquals('', $obj->getRootPath()); $obj->setRootPath('a'); self::assertEquals('a', $obj->getRootPath()); } + + public function testPathOffset() : void + { + $obj = new Http('https://www.google.com/test/path.php?para1=abc¶2=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¶2=2#frag'); + self::assertEquals('www', $obj->getSubmdomain()); + + $obj = new Http('https://google.com/test/path.php?para1=abc¶2=2#frag'); + self::assertEquals('', $obj->getSubmdomain()); + + $obj = new Http('https://test.www.google.com/test/path.php?para1=abc¶2=2#frag'); + self::assertEquals('test.www', $obj->getSubmdomain()); + } + + public function testQueryData() : void + { + $obj = new Http('https://www.google.com/test/path.php?para1=abc¶2=2#frag'); + self::assertEquals('para1=abc¶2=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¶2=2#frag'); + self::assertEquals('/test/path', $obj->getPath()); + self::assertEquals('/test/path?para1=abc¶2=2', $obj->getRoute()); + self::assertEquals('test', $obj->getPathElement(0)); + } } diff --git a/tests/Views/ViewTest.php b/tests/Views/ViewTest.php index c17552797..06a4f69eb 100644 --- a/tests/Views/ViewTest.php +++ b/tests/Views/ViewTest.php @@ -113,6 +113,16 @@ class ViewTest extends \PHPUnit\Framework\TestCase 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 { $view = new View();