diff options
author | diosmosis <benaka@piwik.pro> | 2015-08-25 20:05:59 +0300 |
---|---|---|
committer | diosmosis <benaka@piwik.pro> | 2015-09-01 23:08:18 +0300 |
commit | 48ababe8bc86b73e592daea171211dbf9c6ab148 (patch) | |
tree | 6ea5e8d91574f801c88813cd9d705533924304a8 /plugins/BulkTracking | |
parent | bd57171615858654462dbab20dbfced2d3763c6a (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.php | 8 | ||||
-rw-r--r-- | plugins/BulkTracking/Tracker/Response.php | 12 | ||||
-rw-r--r-- | plugins/BulkTracking/tests/Integration/TrackerTest.php | 6 | ||||
-rw-r--r-- | plugins/BulkTracking/tests/Mock/TrackerResponse.php | 4 | ||||
-rw-r--r-- | plugins/BulkTracking/tests/System/TrackerTest.php | 9 | ||||
-rw-r--r-- | plugins/BulkTracking/tests/Unit/ResponseTest.php | 12 |
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() |