/** * @expectedException \Exception * @expectedExceptionMessage The Handler object set in the plugin */ public function test_make_shouldTriggerExceptionInCaseWrongInstanceCreatedInHandler() { Piwik::addAction('Tracker.newHandler', function (&$handler) { $handler = new Tracker(); }); Factory::make(); }
public function test_registerEvents_shouldListenToNewTrackerEventAndNotCreateBulkHandler_IfNotBulkRequest() { $handler = DefaultHandler\Factory::make(); $this->assertTrue($handler instanceof DefaultHandler); }
require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Base.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Generic.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Mysql/Generic.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Pgsql/Generic.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Mysql/LogAction.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Pgsql/LogAction.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Mysql/LogVisit.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Pgsql/LogVisit.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Mysql/LogLinkVisitAction.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Pgsql/LogLinkVisitAction.php'; // TODO should move to Tracker application class later. currently needed for environment validation. SettingsServer::setIsTrackerApiRequest(); $environment = new \Piwik\Application\Environment('tracker'); $environment->init(); Tracker::loadTrackerEnvironment(); $tracker = new Tracker(); $requestSet = new RequestSet(); ob_start(); try { $handler = Handler\Factory::make(); $response = $tracker->main($handler, $requestSet); if (!is_null($response)) { echo $response; } } catch (Exception $e) { echo "Error:" . $e->getMessage(); exit(1); } if (ob_get_level() > 1) { ob_end_flush(); }
protected function sendRequest($url, $method = 'GET', $data = null, $force = false) { if ($this->DEBUG_APPEND_URL) { $url .= $this->DEBUG_APPEND_URL; } // if doing a bulk request, store the url if ($this->doBulkRequests && !$force) { $this->storedTrackingActions[] = $url; return true; } if ($method == 'POST') { $requests = array(); foreach ($this->storedTrackingActions as $action) { $requests[] = $this->parseUrl($action); } $testEnvironmentArgs = array(); } else { $testEnvironmentArgs = $this->parseUrl($url); $requests = array($testEnvironmentArgs); } // unset cached values Cache::$cache = null; Tracker\Visit::$dimensions = null; // save some values $plugins = Config::getInstance()->Plugins['Plugins']; $oldTrackerConfig = Config::getInstance()->Tracker; \Piwik\Plugin\Manager::getInstance()->unloadPlugins(); // modify config \Piwik\SettingsServer::setIsTrackerApiRequest(); $GLOBALS['PIWIK_TRACKER_LOCAL_TRACKING'] = true; Tracker::$initTrackerMode = false; Tracker::setTestEnvironment($testEnvironmentArgs, $method); // set language $oldLang = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : ''; $_SERVER['HTTP_ACCEPT_LANGUAGE'] = $this->acceptLanguage; // set user agent $oldUserAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $_SERVER['HTTP_USER_AGENT'] = $this->userAgent; // set cookie $oldCookie = $_COOKIE; // parse_str(parse_url($this->requestCookie, PHP_URL_QUERY), $_COOKIE); // do tracking and capture output ob_start(); $localTracker = new Tracker(); $request = new Tracker\RequestSet(); $request->setRequests($requests); \Piwik\Plugin\Manager::getInstance()->loadTrackerPlugins(); $handler = Tracker\Handler\Factory::make(); $response = $localTracker->main($handler, $request); if (!is_null($response)) { echo $response; } $output = ob_get_contents(); ob_end_clean(); // restore vars Config::getInstance()->Tracker = $oldTrackerConfig; $_SERVER['HTTP_ACCEPT_LANGUAGE'] = $oldLang; $_SERVER['HTTP_USER_AGENT'] = $oldUserAgent; $_COOKIE = $oldCookie; $GLOBALS['PIWIK_TRACKER_LOCAL_TRACKING'] = false; \Piwik\SettingsServer::setIsNotTrackerApiRequest(); unset($_GET['bots']); // reload plugins \Piwik\Plugin\Manager::getInstance()->loadPlugins($plugins); return $output; }
private function getHandler() { return Tracker\Handler\Factory::make(); }
public function test_getListHooksRegistered_shouldListenToNewTrackerEventAndCreateQueueHandler() { $handler = DefaultHandler\Factory::make(); $this->assertTrue($handler instanceof Handler); }