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)); }
/** * @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; }
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)); } }
/** * @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()]); }
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()); } }
/** * @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()); }