public function testConstructor() { $this->assertInstanceOf('Webiny\\AnalyticsDb\\Query\\Dimensions', $this->instance); $pipeline = $this->instance->getPipeline(); // test $match $ts = DateHelper::today(); $defaultMatch = ['entity' => 'browser', 'ts' => ['$gte' => $ts[0], '$lte' => $ts[1]]]; $this->assertSame($defaultMatch, $pipeline[0]['$match']); // test $project $defaultProject = ['ts' => 1, 'entity' => 1, 'month' => 1, 'year' => 1, 'name' => 1, 'value' => 1, 'total' => 1, 'count.100' => 1]; $this->assertSame($defaultProject, $pipeline[1]['$project']); }
public function testRangeYear() { $result = DateHelper::rangeYear(); $this->assertTrue(is_array($result)); $this->assertSame('01-01', date('m-d', $result[0])); $this->assertSame('12-31', date('m-d', $result[1])); $this->assertSame(date('Y'), date('Y', $result[1])); $this->assertLessThanOrEqual(365, ($result[1] - $result[0]) / 86400); $this->assertGreaterThanOrEqual(364, ($result[1] - $result[0]) / 86400); $result = DateHelper::rangeYear(2014); $this->assertSame('01-01', date('m-d', $result[0])); $this->assertSame('12-31', date('m-d', $result[1])); $this->assertSame('2014', date('Y', $result[1])); $this->assertLessThanOrEqual(365, ($result[1] - $result[0]) / 86400); $this->assertGreaterThanOrEqual(364, ($result[1] - $result[0]) / 86400); }
public function setUp() { \Webiny\Component\Mongo\Mongo::setConfig(new ConfigObject(['Driver' => 'Webiny\\AnalyticsDb\\Test\\MongoDriverMock'])); $this->instance = new Query(new Mongo('localhost', 'testDb'), 'browser', 100, DateHelper::today()); }
public function testQuery() { $query = $this->instance->query('browser', 10, DateHelper::today()); $this->assertInstanceOf('Webiny\\AnalyticsDb\\Query', $query); }
<?php use Webiny\WebsiteAnalytics\StatHandlers\Browser; use Webiny\WebsiteAnalytics\StatHandlers\Country; require_once 'vendor/autoload.php'; $_SERVER['SERVER_NAME'] = 'www.webiny.com'; $geoProvider = new \Webiny\GeoIp\Provider\MaxMindGeoLite2\MaxMindGeoLite2(__DIR__ . '/test-config.yaml'); $geoIp = new \Webiny\GeoIp\GeoIp($geoProvider); $mongo = new \Webiny\Component\Mongo\Mongo('127.0.0.1:27017', 'LoginFoo'); $a = new \Webiny\AnalyticsDb\AnalyticsDb($mongo); $wa = new \Webiny\WebsiteAnalytics\WebsiteAnalytics($a, $geoIp); # queries $stats = $wa->query(\Webiny\AnalyticsDb\DateHelper::rangeLast90Days()); // visitors (unique) $result = $stats->visitorsSum(); $result = $stats->visitorsByDay(); $result = $stats->visitorsByMonth(); // dimensions (based on visitors) $result = $stats->visitorsDimensionSum(Browser::NAME, 'safari'); $result = $stats->visitorsDimensionByDay(Country::NAME, 'HR'); // page views (not unique) $result = $stats->pageViewsSum(); $result = $stats->pageViewsByDay(); $result = $stats->pageViewsByMonth(); // url - get top 10 pages $result = $stats->urlSum(); // url - get total number of views for the given page $result = $stats->urlSum('/page-110/'); $result = $stats->urlByDay('/page-860/'); $result = $stats->urlByMonth('/page-860/'); $result = $stats->urlDimensionSum('/page-110/', Browser::NAME);