Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordiosmosis <benaka@piwik.pro>2015-08-25 20:05:59 +0300
committerdiosmosis <benaka@piwik.pro>2015-09-01 23:08:18 +0300
commit48ababe8bc86b73e592daea171211dbf9c6ab148 (patch)
tree6ea5e8d91574f801c88813cd9d705533924304a8 /plugins/BulkTracking
parentbd57171615858654462dbab20dbfced2d3763c6a (diff)
In BulkTracking output, return the index of each invalid request in addition to count of invalid (count remains in output for BC).
Diffstat (limited to 'plugins/BulkTracking')
-rw-r--r--plugins/BulkTracking/Tracker/Handler.php8
-rw-r--r--plugins/BulkTracking/Tracker/Response.php12
-rw-r--r--plugins/BulkTracking/tests/Integration/TrackerTest.php6
-rw-r--r--plugins/BulkTracking/tests/Mock/TrackerResponse.php4
-rw-r--r--plugins/BulkTracking/tests/System/TrackerTest.php9
-rw-r--r--plugins/BulkTracking/tests/Unit/ResponseTest.php12
6 files changed, 30 insertions, 21 deletions
diff --git a/plugins/BulkTracking/Tracker/Handler.php b/plugins/BulkTracking/Tracker/Handler.php
index db368a315e..791b149e3f 100644
--- a/plugins/BulkTracking/Tracker/Handler.php
+++ b/plugins/BulkTracking/Tracker/Handler.php
@@ -40,18 +40,18 @@ class Handler extends Tracker\Handler
public function process(Tracker $tracker, RequestSet $requestSet)
{
- $invalidRequests = 0;
- foreach ($requestSet->getRequests() as $request) {
+ $invalidRequests = array();
+ foreach ($requestSet->getRequests() as $index => $request) {
try {
$tracker->trackRequest($request);
} catch (UnexpectedWebsiteFoundException $ex) {
- $invalidRequests += 1;
+ $invalidRequests[] = $index;
}
}
/** @var Response $response */
$response = $this->getResponse();
- $response->setInvalidCount($invalidRequests);
+ $response->setInvalidRequests($invalidRequests);
}
public function onException(Tracker $tracker, RequestSet $requestSet, Exception $e)
diff --git a/plugins/BulkTracking/Tracker/Response.php b/plugins/BulkTracking/Tracker/Response.php
index 816397cfd0..6b46fa18f3 100644
--- a/plugins/BulkTracking/Tracker/Response.php
+++ b/plugins/BulkTracking/Tracker/Response.php
@@ -15,9 +15,9 @@ use Piwik\Tracker;
class Response extends Tracker\Response
{
/**
- * @var int
+ * @var int[]
*/
- private $invalidRequests = 0;
+ private $invalidRequests = array();
/**
* Echos an error message & other information, then exits.
@@ -61,7 +61,8 @@ class Response extends Tracker\Response
$result = array(
'status' => 'error',
'tracked' => $tracker->getCountOfLoggedRequests(),
- 'invalid' => $this->invalidRequests,
+ 'invalid' => count($this->invalidRequests),
+ 'invalid_indices' => $this->invalidRequests,
);
// send error when in debug mode
@@ -77,11 +78,12 @@ class Response extends Tracker\Response
return array(
'status' => 'success',
'tracked' => $tracker->getCountOfLoggedRequests(),
- 'invalid' => $this->invalidRequests,
+ 'invalid' => count($this->invalidRequests),
+ 'invalid_indices' => $this->invalidRequests,
);
}
- public function setInvalidCount($invalidRequests)
+ public function setInvalidRequests($invalidRequests)
{
$this->invalidRequests = $invalidRequests;
}
diff --git a/plugins/BulkTracking/tests/Integration/TrackerTest.php b/plugins/BulkTracking/tests/Integration/TrackerTest.php
index 32b26e4ec4..d113faca42 100644
--- a/plugins/BulkTracking/tests/Integration/TrackerTest.php
+++ b/plugins/BulkTracking/tests/Integration/TrackerTest.php
@@ -66,7 +66,7 @@ class TrackerTest extends BulkTrackingTestCase
{
$response = $this->tracker->main($this->getHandler(), $this->getEmptyRequestSet());
- $this->assertSame('{"status":"success","tracked":2,"invalid":0}', $response);
+ $this->assertSame('{"status":"success","tracked":2,"invalid":0,"invalid_indices":[]}', $response);
}
public function test_main_shouldReturnErrorResponse_InCaseOfAnyError()
@@ -79,7 +79,7 @@ class TrackerTest extends BulkTrackingTestCase
$response = $this->tracker->main($handler, $requestSet);
- $this->assertSame('{"status":"error","tracked":0,"invalid":0}', $response);
+ $this->assertSame('{"status":"error","tracked":0,"invalid":0,"invalid_indices":[]}', $response);
}
public function test_main_shouldReturnErrorResponse_IfNotAuthorized()
@@ -91,7 +91,7 @@ class TrackerTest extends BulkTrackingTestCase
$response = $this->tracker->main($handler, $this->getEmptyRequestSet());
- $this->assertSame('{"status":"error","tracked":0,"invalid":0}', $response);
+ $this->assertSame('{"status":"error","tracked":0,"invalid":0,"invalid_indices":[]}', $response);
}
public function test_main_shouldActuallyTrack()
diff --git a/plugins/BulkTracking/tests/Mock/TrackerResponse.php b/plugins/BulkTracking/tests/Mock/TrackerResponse.php
index 15eb209bc2..20ecfff715 100644
--- a/plugins/BulkTracking/tests/Mock/TrackerResponse.php
+++ b/plugins/BulkTracking/tests/Mock/TrackerResponse.php
@@ -12,9 +12,9 @@ use Piwik\Tests\Framework\Mock\Tracker\Response;
class TrackerResponse extends Response
{
- private $invalidRequests = 0;
+ private $invalidRequests = array();
- public function setInvalidCount($invalidRequests)
+ public function setInvalidRequests($invalidRequests)
{
$this->invalidRequests = $invalidRequests;
}
diff --git a/plugins/BulkTracking/tests/System/TrackerTest.php b/plugins/BulkTracking/tests/System/TrackerTest.php
index 188e87e1ca..aabef2296f 100644
--- a/plugins/BulkTracking/tests/System/TrackerTest.php
+++ b/plugins/BulkTracking/tests/System/TrackerTest.php
@@ -50,8 +50,15 @@ class TrackerTest extends SystemTestCase
$this->tracker->setIdSite(5);
$this->tracker->doTrackPageView('Test');
+ $this->tracker->setIdSite(1);
+ $this->tracker->doTrackPageView('Test');
+
+ // another invalid one to further test the invalid request indices in the result
+ $this->tracker->setIdSite(7);
+ $this->tracker->doTrackPageView('Test');
+
$response = $this->tracker->doBulkTrack();
- $this->assertEquals('{"status":"success","tracked":2,"invalid":1}', $response);
+ $this->assertEquals('{"status":"success","tracked":3,"invalid":2,"invalid_indices":[2,4]}', $response);
}
} \ No newline at end of file
diff --git a/plugins/BulkTracking/tests/Unit/ResponseTest.php b/plugins/BulkTracking/tests/Unit/ResponseTest.php
index 91b3df86da..db73ddbe1b 100644
--- a/plugins/BulkTracking/tests/Unit/ResponseTest.php
+++ b/plugins/BulkTracking/tests/Unit/ResponseTest.php
@@ -48,7 +48,7 @@ class ResponseTest extends UnitTestCase
$this->response->outputException($tracker, new Exception('My Custom Message'), 400);
$content = $this->response->getOutput();
- $this->assertEquals('{"status":"error","tracked":5,"invalid":0}', $content);
+ $this->assertEquals('{"status":"error","tracked":5,"invalid":0,"invalid_indices":[]}', $content);
}
public function test_outputException_shouldOutputDebugMessageIfEnabled()
@@ -59,7 +59,7 @@ class ResponseTest extends UnitTestCase
$this->response->outputException($tracker, new Exception('My Custom Message'), 400);
$content = $this->response->getOutput();
- $this->assertStringStartsWith('{"status":"error","tracked":5,"invalid":0,"message":"My Custom Message\n', $content);
+ $this->assertStringStartsWith('{"status":"error","tracked":5,"invalid":0,"invalid_indices":[],"message":"My Custom Message\n', $content);
}
public function test_outputResponse_shouldOutputBulkResponse()
@@ -69,7 +69,7 @@ class ResponseTest extends UnitTestCase
$this->response->outputResponse($tracker);
$content = $this->response->getOutput();
- $this->assertEquals('{"status":"success","tracked":5,"invalid":0}', $content);
+ $this->assertEquals('{"status":"success","tracked":5,"invalid":0,"invalid_indices":[]}', $content);
}
public function test_outputResponse_shouldNotOutputAnything_IfExceptionResponseAlreadySent()
@@ -80,18 +80,18 @@ class ResponseTest extends UnitTestCase
$this->response->outputResponse($tracker);
$content = $this->response->getOutput();
- $this->assertEquals('{"status":"error","tracked":5,"invalid":0}', $content);
+ $this->assertEquals('{"status":"error","tracked":5,"invalid":0,"invalid_indices":[]}', $content);
}
public function test_outputResponse_shouldOutputInvalidRequests_IfInvalidCountSet()
{
$tracker = $this->getTrackerWithCountedRequests();
- $this->response->setInvalidCount(3);
+ $this->response->setInvalidRequests(array(5, 63, 72));
$this->response->outputResponse($tracker);
$content = $this->response->getOutput();
- $this->assertEquals('{"status":"success","tracked":5,"invalid":3}', $content);
+ $this->assertEquals('{"status":"success","tracked":5,"invalid":3,"invalid_indices":[5,63,72]}', $content);
}
private function getTrackerWithCountedRequests()