Beispiel #1
0
 public function testRequestMatching()
 {
     $site = $this->getMockSite();
     $factory = new CM_Http_ResponseFactory($this->getServiceManager());
     $request = new CM_Http_Request_Post('/upload', ['host' => $site->getHost()]);
     $this->assertInstanceOf('CM_Http_Response_Upload', $factory->getResponse($request));
 }
Beispiel #2
0
 /**
  * @param CM_Http_Request_Abstract $request
  * @throws CM_Exception
  * @return CM_Http_Response_Abstract
  */
 public function processRequest(CM_Http_Request_Abstract $request)
 {
     try {
         $this->getServiceManager()->getLogger()->getContext()->setHttpRequest($request);
         $responseFactory = new CM_Http_ResponseFactory($this->getServiceManager());
         $response = $responseFactory->getResponse($request);
     } catch (CM_Exception $e) {
         $e->setSeverity(CM_Exception::WARN);
         throw $e;
     }
     $response->process();
     return $response;
 }
Beispiel #3
0
 public function testGetResponseResouce()
 {
     $responses = array();
     $responses['/library-css'] = 'CM_Http_Response_Resource_Css_Library';
     $responses['/vendor-css'] = 'CM_Http_Response_Resource_Css_Vendor';
     $responses['/library-js'] = 'CM_Http_Response_Resource_Javascript_Library';
     $responses['/vendor-js'] = 'CM_Http_Response_Resource_Javascript_Vendor';
     $responses['/layout'] = 'CM_Http_Response_Resource_Layout';
     $responseClassList = array_values($responses);
     $site = $this->getMockSite();
     $factory = new CM_Http_ResponseFactory($this->getServiceManager(), $responseClassList);
     foreach ($responses as $path => $expectedResponse) {
         $request = new CM_Http_Request_Get($path . '/' . $site->getId() . '/timestamp', ['host' => $site->getHost()]);
         $this->assertInstanceOf($expectedResponse, $factory->getResponse($request));
     }
 }
Beispiel #4
0
 /**
  * @param CM_Http_Request_Abstract $request
  * @return CM_Http_Response_Abstract|\Mocka\AbstractClassTrait
  */
 public function getResponse(CM_Http_Request_Abstract $request)
 {
     $responseFactory = new CM_Http_ResponseFactory(self::getServiceManager());
     $response = $responseFactory->getResponse($request);
     return $this->mockClass(get_class($response))->newInstance([$response->getRequest(), $response->getSite(), $response->getServiceManager()]);
 }
Beispiel #5
0
 public function testProcessSiteMatchingByPath()
 {
     $site1 = $this->getMockSite(null, null, ['url' => 'http://my-site.com/foo']);
     $site2 = $this->getMockSite(null, null, ['url' => 'http://my-site.com/bar']);
     $site3 = $this->getMockSite(null, null, ['url' => 'http://my-site.com']);
     $expectedList = ['/foo/mock5?foo=bar' => $site1, '/bar/mock5?foo=bar' => $site2, '/mock5?foo=bar' => $site3];
     $responseFactory = new CM_Http_ResponseFactory($this->getServiceManager());
     foreach ($expectedList as $path => $site) {
         $request = new CM_Http_Request_Get($path, ['host' => 'my-site.com']);
         $response = $responseFactory->getResponse($request);
         $response->process();
         $this->assertInstanceOf('CM_Http_Response_Page', $response);
         $this->assertEquals($site, $response->getSite());
     }
 }
Beispiel #6
0
 /**
  * @param string $url
  * @return bool
  */
 private function _isPageOnSameSite($url)
 {
     $urlParser = new CM_Http_UrlParser($url);
     if (!$this->_site->isUrlMatch($urlParser->getHost(), $urlParser->getPath())) {
         return false;
     }
     $request = $this->_createGetRequestWithUrl($url);
     $responseFactory = new CM_Http_ResponseFactory($this->getServiceManager());
     $response = $responseFactory->getResponse($request);
     return $response->getSite()->equals($this->getSite());
 }