コード例 #1
0
ファイル: PageTest.php プロジェクト: cargomedia/cm
 public function testProcessTrackingViewer()
 {
     $mockBuilder = $this->getMockBuilder('CM_Model_User');
     $mockBuilder->setMethods(['getIdRaw', 'getVisible', 'getLanguage', 'getCurrency']);
     $viewerMock = $mockBuilder->getMock();
     $viewerMock->expects($this->any())->method('getIdRaw')->will($this->returnValue(array('id' => '1')));
     $viewerMock->expects($this->any())->method('getVisible')->will($this->returnValue(false));
     $viewerMock->expects($this->any())->method('getLanguage')->will($this->returnValue(null));
     $viewerMock->expects($this->any())->method('getCurrency')->will($this->returnValue(null));
     $site = CM_Site_Abstract::factory();
     $request = new CM_Http_Request_Get('/mock5', ['host' => $site->getHost()], null, $viewerMock);
     $serviceManager = $this->_getServiceManager('ga123', 'km123');
     $response = CM_Http_Response_Page::createFromRequest($request, $site, $serviceManager);
     $response->process();
     $html = $response->getContent();
     $this->assertContains('ga("create", "ga123"', $html);
     $this->assertContains('ga("send", "pageview", "\\/mock5")', $html);
     $this->assertContains('var _kmq = _kmq || [];', $html);
     $this->assertContains("var _kmk = _kmk || 'km123';", $html);
     $clientId = $request->getClientId();
     $this->assertContains("_kmq.push(['identify', 'Guest {$clientId}']);", $html);
     $this->assertContains("_kmq.push(['identify', '1']);", $html);
     $this->assertContains("_kmq.push(['alias', 'Guest {$clientId}', '1']);", $html);
 }
コード例 #2
0
ファイル: TestCase.php プロジェクト: cargomedia/cm
 /**
  * @param CM_Page_Abstract      $page
  * @param CM_Model_User|null    $viewer
  * @param CM_Site_Abstract|null $site
  * @return CM_Dom_NodeList
  */
 protected function _renderPage(CM_Page_Abstract $page, CM_Model_User $viewer = null, CM_Site_Abstract $site = null)
 {
     if (null === $site) {
         $site = CM_Site_Abstract::factory();
     }
     $host = parse_url($site->getUrl(), PHP_URL_HOST);
     $request = new CM_Http_Request_Get('?' . http_build_query($page->getParams()->getParamsEncoded()), ['host' => $host], null, $viewer);
     $response = CM_Http_Response_Page::createFromRequest($request, $site, $this->getServiceManager());
     $page->prepareResponse($response->getRender()->getEnvironment(), $response);
     $renderAdapter = new CM_RenderAdapter_Page($response->getRender(), $page);
     $html = $renderAdapter->fetch();
     return new CM_Dom_NodeList($html, true);
 }
コード例 #3
0
ファイル: TH.php プロジェクト: cargomedia/cm
 /**
  * @param string             $uri
  * @param CM_Model_User|null $viewer
  * @return CM_Http_Response_Page
  * @throws CM_Class_Exception_TypeNotConfiguredException
  */
 public static function createResponsePage($uri, CM_Model_User $viewer = null)
 {
     $site = CM_Site_Abstract::factory();
     $headers = array('host' => $site->getHost());
     $request = new CM_Http_Request_Get($uri, $headers, null, $viewer);
     return CM_Http_Response_Page::createFromRequest($request, $site, self::getServiceManager());
 }