dbPool = new DatabasePool(); /** @var array $CONFIG */ $this->dbPool->create('core', $GLOBALS['CONFIG']['db']['core']['masters']['admin']); $this->app = new class() extends ApplicationAbstract { protected $appName = 'Api'; }; $this->app->l11nManager = new L11nManager($this->app->appName); $this->app->dbPool = $this->dbPool; } public function testDefault() : void { $view = new View($this->app, new Request(new Http('')), new Response(new Localization())); self::assertEmpty($view->getTemplate()); self::assertEmpty($view->getViews()); self::assertIsArray($view->getViews()); self::assertFalse($view->getView('0')); self::assertFalse($view->removeView('0')); self::assertNull($view->getData('0')); self::assertFalse($view->removeData('0')); self::assertEmpty($view->toArray()); } public function testGetText() : void { $view = new View($this->app, $request = new Request(new Http('')), $response = new Response()); $view->setTemplate('/Modules/Admin/Theme/Backend/accounts-list'); $expected = [ 'en' => [ 'Admin' => [ 'Test' => 'Test', ], ], ]; $this->app->l11nManager = new L11nManager('Api'); $this->app->l11nManager->loadLanguage('en', 'Admin', $expected['en']); self::assertEquals('Test', $view->getText('Test')); self::assertEquals('<a href="test">Test</a>', $view->getHtml('Test')); } public function testGetSet() : void { $view = new View($this->app, $request = new Request(new Http('')), $response = new Response()); $view->setData('key', 'value'); self::assertEquals('value', $view->getData('key')); self::assertTrue($view->addData('key2', 'valu2')); self::assertFalse($view->addData('key2', 'valu3')); self::assertEquals('valu2', $view->getData('key2')); self::assertTrue($view->removeData('key2')); self::assertFalse($view->removeData('key3')); self::assertEquals($request, $view->getRequest()); self::assertEquals($response, $view->getResponse()); self::assertEquals('<a href="test">Test</a>', $view->printHtml('Test')); self::assertEquals('<a href="test">Test</a>', ViewAbstract::html('Test')); $tView = new View($this->app, $request, $response); self::assertTrue($view->addView('test', $tView)); self::assertEquals($tView, $view->getView('test')); self::assertCount(1, $view->getViews()); self::assertTrue($view->removeView('test')); self::assertFalse($view->removeView('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)); self::assertFalse($view->addView('test', $tView, 0, false)); } public function testRender() : void { $view = new View(); $view->setTemplate('/phpOMS/tests/Views/testTemplate'); self::assertEquals('Test', $view->render()); } public function testSerialize() : void { $view = new View(); self::assertEquals('[]', $view->serialize()); $view->setTemplate('/phpOMS/tests/Views/testTemplate'); self::assertEquals('Test', $view->serialize()); } public function testArray() : void { $view = new View(); self::assertEquals([], $view->toArray()); $view->setTemplate('/phpOMS/tests/Views/testTemplate'); $view2 = new View(); $view2->setTemplate('/phpOMS/tests/Views/testTemplate'); $view->addView('sub', $view2, 1); self::assertEquals([ 0 => 'Test', 'sub' => ['Test'], ], $view->toArray() ); } public function testRenderException() : void { self::expectException(\phpOMS\System\File\PathException::class); $view = new View($this->app); $view->setTemplate('something.txt'); $view->render(); } public function testSerializeException() : void { self::expectException(\phpOMS\System\File\PathException::class); $view = new View($this->app); $view->setTemplate('something.txt'); $view->serialize(); } }