1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\BulkTracking\tests\Integration;
use Piwik\Plugins\BulkTracking\tests\Framework\TestCase\BulkTrackingTestCase;
use Piwik\Plugins\BulkTracking\Tracker\Handler;
use Piwik\Tracker\Handler as DefaultHandler;
use Piwik\Tracker\RequestSet;
/**
* @group BulkTracking
* @group BulkTrackingTest
* @group Plugins
* @group Tracker
*/
class BulkTrackingTest extends BulkTrackingTestCase
{
public function testInitRequestSetShouldNotSetAnythingIfItIsActuallyNotUsingBulkRequest()
{
$requestSet = new RequestSet();
$this->bulk->initRequestSet($requestSet);
$this->assertEquals(array(), $requestSet->getRequests());
$this->assertEquals(false, $requestSet->getTokenAuth());
}
public function testInitRequestSetShouldNotSetAnythingIfNotBulkRequestRawDataIsGiven()
{
$requestSet = $this->initRequestSet('invalid:requests');
$this->assertEquals(array(), $requestSet->getRequests());
$this->assertEquals(false, $requestSet->getTokenAuth());
}
public function testInitRequestSetShouldInitializeAsItIsABulkRequest()
{
$token = $this->getSuperUserToken();
$request = $this->getDummyRequest($token);
$requestSet = $this->initRequestSet($request);
$requests = $requestSet->getRequests();
$this->assertCount(2, $requests);
$this->assertEquals(array('idsite' => '1', 'rec' => '1'), $requests[0]->getParams());
$this->assertEquals(array('idsite' => '2', 'rec' => '1'), $requests[1]->getParams());
$this->assertEquals($token, $requestSet->getTokenAuth());
}
public function testInitRequestSetShouldNotOverwriteATokenIfOneIsAlreadySet()
{
$token = $this->getSuperUserToken();
$request = $this->getDummyRequest($token);
$requestSet = $this->initRequestSet($request, false, 'initialtoken');
$this->assertEquals('initialtoken', $requestSet->getTokenAuth());
$this->assertCount(2, $requestSet->getRequests());
}
public function testInitRequestSetShouldNotFailIfNoTokenProvidedAsAuthenticationIsDisabledByDefault()
{
$request = $this->getDummyRequest();
$requestSet = $this->initRequestSet($request);
$requests = $requestSet->getRequests();
$this->assertCount(2, $requests);
}
public function testInitRequestSetShouldTriggerExceptionInCaseNoValidTokenProvidedAndAuthenticationIsRequired()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('token_auth must be specified when using Bulk Tracking Import');
$request = $this->getDummyRequest(false);
$this->initRequestSet($request, true);
}
public function testSetHandlerIfBulkRequestShouldSetBulkHandlerInCaseNoHandlerIsSetAndItIsABulkRequest()
{
$this->injectRawDataToBulk($this->getDummyRequest());
$handler = null;
$this->bulk->setHandlerIfBulkRequest($handler);
$this->assertTrue($handler instanceof Handler);
}
public function testSetHandlerIfBulkRequestShouldNotSetAHandlerIfOneIsAlreadySetEvenIfItIsABulkRequest()
{
$this->injectRawDataToBulk($this->getDummyRequest());
$default = new DefaultHandler();
$handler = $default;
$this->bulk->setHandlerIfBulkRequest($default);
$this->assertSame($default, $handler);
}
public function testSetHandlerIfBulkRequestShouldNotSetAHandlerIfItIsNotABulkRequest()
{
$this->injectRawDataToBulk('{"test":"not a bulk request"}');
$handler = null;
$this->bulk->setHandlerIfBulkRequest($handler);
$this->assertNull($handler);
}
public function testRegisterEventsShouldListenToNewTrackerEventAndCreateBulkHandlerIfBulkRequest()
{
$this->injectRawDataToBulk($this->getDummyRequest());
$handler = DefaultHandler\Factory::make();
$this->assertTrue($handler instanceof Handler);
}
public function testRegisterEventsShouldListenToNewTrackerEventAndNotCreateBulkHandlerIfNotBulkRequest()
{
$handler = DefaultHandler\Factory::make();
$this->assertTrue($handler instanceof DefaultHandler);
}
public function testRegisterEventsShouldListenToInitRequestSetEventAndInitIfBulkRequest()
{
$this->injectRawDataToBulk($this->getDummyRequest());
$requestSet = new RequestSet();
$requestSet->initRequestsAndTokenAuth();
$this->assertCount(2, $requestSet->getRequests());
}
}
|