protected function registerUrlHandlers()
 {
     parent::registerUrlHandlers();
     // Add a simple home page URL handler. We're using one of the simplest handlers the
     // ClassMappedUrlHandler, but you should look at the other handlers particularly
     // the MvpUrlHandler and CrudUrlHandler
     $login = new ClassMappedUrlHandler(__NAMESPACE__ . '\\Presenters\\IndexPresenter');
     $login->setPriority(11);
     $this->addUrlHandlers(["/" => new ClassMappedUrlHandler('\\Your\\WebApp\\Presenters\\IndexPresenter', ['portal/' => new ClassMappedUrlHandler('Your\\WebApp\\Presenters\\Portal\\PortalPresenter', ['gallery/' => new CrudUrlHandler('Gallery', 'Your\\WebApp\\Presenters\\Gallery', ['change']), 'image/' => new CrudUrlHandler('Image', 'Your\\WebApp\\Presenters\\Image'), 'users/' => new ClassMappedUrlHandler(UsersPresenter::class), 'logout/' => new ClassMappedUrlHandler('Your\\WebApp\\Presenters\\Logout\\LogoutPresenter')]), 'img/' => new ImageUrlHandler(ImgPresenter::class), 'users/' => new CrudUrlHandler('CustomUser', 'Your\\WebApp\\Presenters\\MyProfile')]), "/login/" => $login]);
 }
 public function testUrlHandled()
 {
     $request = new WebRequest();
     $request->UrlPath = "/wrong/path/";
     $handler = new ClassMappedUrlHandler("\\Rhubarb\\Crown\\Tests\\UrlHandlers\\TestTarget");
     $handler->setUrl("/right/path/");
     $response = $handler->generateResponse($request);
     $this->assertFalse($response);
     $request = new WebRequest();
     $request->UrlPath = "/right/path/";
     $response = $handler->generateResponse($request);
     $this->assertEquals("bing bang bong", $response->getContent());
 }
 public function testChildHandler()
 {
     $child = new ClassMappedUrlHandler("Rhubarb\\Crown\\Tests\\UrlHandlers\\Fixtures\\NamespaceMappedHandlerTests\\SubFolder\\ObjectB");
     $parent = new ClassMappedUrlHandler("Rhubarb\\Crown\\Tests\\UrlHandlers\\Fixtures\\NamespaceMappedHandlerTests\\ObjectA", ["child/" => $child]);
     $parent->setUrl("/parent/");
     $request = new WebRequest();
     $request->UrlPath = "/parent/child/";
     $response = $parent->generateResponse($request);
     $this->assertEquals("ObjectB Response", $response);
     $request->UrlPath = "/parent/not-child/";
     $response = $parent->generateResponse($request);
     $this->assertEquals("ObjectA Response", $response);
     $request->UrlPath = "/not-parent/not-child/";
     $response = $parent->generateResponse($request);
     $this->assertFalse($response);
 }
 public function testChildHandler()
 {
     $child = new ClassMappedUrlHandler(ObjectB::class);
     $parent = new ClassMappedUrlHandler(ObjectA::class, ["child/" => $child]);
     $parent->setUrl("/parent/");
     $request = new WebRequest();
     $request->urlPath = "/parent/child/";
     $response = $parent->generateResponse($request);
     $this->assertEquals("ObjectB Response", $response);
     $request->urlPath = "/parent/not-child/";
     $response = $parent->generateResponse($request);
     $this->assertEquals("ObjectA Response", $response);
     $request->urlPath = "/not-parent/not-child/";
     $response = $parent->generateResponse($request);
     $this->assertFalse($response);
 }
 public function generateResponseForRequest($request = null)
 {
     HttpHeaders::setContentType('application/download');
     return parent::generateResponseForRequest($request);
 }