Example #1
0
 public function testBasicGetView()
 {
     $state = new ContentTypeController_underTest_getView();
     $oMap = new ControllerMap(__FILE__, '\\A.*\\Z');
     $oMap->setView(testView::class);
     $state->setMap($oMap);
     $this->assertNull($state->getView());
 }
Example #2
0
 public function setUp()
 {
     $this->state = new FrontController_underTest_setMap();
     $oMap = new ControllerMap(__FILE__, '\\A.*\\Z');
     $oMap->setView(testView::class);
     $oMap->setMainTemplatePath(VSC_FIXTURE_PATH . 'templates');
     $oMap->setMainTemplate('main.tpl.php');
     $this->state->setMap($oMap);
 }
Example #3
0
 public function testGetViewAfterBeingSet()
 {
     $state = new FrontControllerA_underTest_getView();
     $oMap = new ControllerMap(__FILE__, '\\A.*\\Z');
     $oMap->setView(testView::class);
     $state->setMap($oMap);
     $v = $state->getView();
     $this->assertNotNull($v);
     $this->assertNotInstanceOf(Base::class, $v);
     $this->assertInstanceOf(testView::class, $v);
     $this->assertInstanceOf(ViewA::class, $v);
 }
Example #4
0
 /**
  * @throws \vsc\application\sitemaps\ExceptionSitemap
  * @throws \vsc\presentation\responses\ExceptionResponseError
  * @returns FrontControllerA
  */
 public function getFrontController()
 {
     if (!FrontControllerA::isValid($this->oController)) {
         $oControllerMapping = $this->getCurrentControllerMap();
         if (ControllerMap::isValid($oControllerMapping)) {
             $sPath = $oControllerMapping->getPath();
             if ($this->getSiteMap()->isValidObjectPath($sPath)) {
                 include $sPath;
                 $sControllerName = SiteMapA::getClassName($sPath);
             }
         }
         if (ClassMap::isValid($oControllerMapping)) {
             $sControllerName = $oControllerMapping->getPath();
         }
         if (empty($sControllerName)) {
             throw new ExceptionResponseError('Could not find the correct front controller', HttpResponseType::NOT_FOUND);
         }
         /* @var $this->oController FrontControllerA */
         $this->oController = new $sControllerName();
         if (FrontControllerA::isValid($this->oController)) {
             // adding the map to the controller, allows it to add resources (styles,scripts) from inside it
             $this->oController->setMap($oControllerMapping);
         }
     }
     //		d ($oControllerMapping);
     return $this->oController;
 }
Example #5
0
 /**
  * @param \Exception $e
  * @param HttpRequestA $oRequest
  * @return HttpResponseA
  * @throws ExceptionPath
  * @throws ExceptionResponse
  */
 public function getErrorResponse(\Exception $e, $oRequest = null)
 {
     $oResponse = vsc::getEnv()->getHttpResponse();
     $oProcessor = new ErrorProcessor($e);
     /* @var ControllerMap $oMyMap */
     $oMyMap = $this->getMap();
     $oMyMap->setMainTemplatePath(VSC_RES_PATH . 'templates');
     $oMyMap->setMainTemplate('main.php');
     if (!HttpRequestA::isValid($oRequest)) {
         $oRequest = vsc::getEnv()->getHttpRequest();
     }
     /** @var ErrorModel $oModel */
     $oModel = $oProcessor->handleRequest($oRequest);
     $iCode = $oModel->getHttpStatus();
     if (HttpResponseType::isValidStatus($iCode)) {
         $oResponse->setStatus($iCode);
     } else {
         $oResponse->setStatus(500);
     }
     // we didn't set any special view
     // this means that the developer needs to provide his own views
     $oView = $this->getView();
     /* @var ProcessorMap $oMap */
     $oMap = $oProcessor->getMap();
     $oMap->merge($oMyMap);
     $oProcessorResponse = $oMap->getResponse();
     if (HttpResponseA::isValid($oProcessorResponse)) {
         $oResponse = $oProcessorResponse;
     }
     // setting the processor map
     $oView->setMap($oMap);
     if (ControllerMap::isValid($oMyMap)) {
         $oView->setMainTemplate($oMyMap->getMainTemplatePath() . DIRECTORY_SEPARATOR . $oView->getViewFolder() . DIRECTORY_SEPARATOR . $oMyMap->getMainTemplate());
     }
     $oView->setModel($oModel);
     $oResponse->setView($oView);
     $aHeaders = $oMap->getHeaders();
     if (count($aHeaders) > 0) {
         foreach ($aHeaders as $sName => $sHeader) {
             $oResponse->addHeader($sName, $sHeader);
         }
     }
     return $oResponse;
 }