Пример #1
0
 /**
  * Логирует запрос
  * @param \Phalcon\Http\Request $request
  */
 public function log(Request $request)
 {
     $token = trim($request->get('token'));
     $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
     $host = parse_url($referer);
     $host = $host['host'];
     if ($token != '') {
         $this->googleTracker->setClientID($token);
     }
     $page = new \Racecore\GATracking\Tracking\Page();
     $page->setDocumentPath($referer != '' ? $referer : '/');
     $page->setDocumentTitle($referer != '' ? $referer : 'Direct');
     $this->googleTracker->addTracking($page);
     $event = new \Racecore\GATracking\Tracking\Event();
     $event->setEventCategory('Token_' . $request->get('token'));
     $event->setEventLabel($host);
     $event->setEventAction('Hit');
     $this->googleTracker->addTracking($event);
     try {
         $this->googleTracker->send();
     } catch (Exception $e) {
         //echo 'Error: ' . $e->getMessage() . '<br />' . "\r\n";
         //echo 'Type: ' . get_class($e);
     }
 }
 public function testSingleTracking()
 {
     $service = new GATracking('foo');
     $trackingRequest = new TrackingRequest();
     $trackingRequest->setPayload(array('foo' => 'bar'));
     $trackingRequest->setResponseHeader(array('baz' => 'fooBar'));
     $collection = new TrackingRequestCollection();
     $collection->add($trackingRequest);
     $clientMock = $this->getMock('Racecore\\GATracking\\Client\\Adapter\\Socket');
     $clientMock->expects($this->once())->method('send')->will($this->returnValue($collection));
     $tracking = $this->getMock('Racecore\\GATracking\\Tracking\\Event');
     $tracking->expects($this->once())->method('getPackage')->will($this->returnValue(array('test' => 'bar')));
     $service->setClientAdapter($clientMock);
     $response = $service->sendTracking($tracking);
     $responsePayload = $response->getPayload();
     $responseHeader = $response->getResponseHeader();
     $this->assertInstanceOf('Racecore\\GATracking\\Request\\TrackingRequest', $response);
     $this->assertArrayHasKey('foo', $responsePayload);
     $this->assertEquals('bar', $responsePayload['foo']);
     $this->assertArrayHasKey('baz', $responseHeader);
     $this->assertEquals('fooBar', $responseHeader['baz']);
 }