diff options
-rw-r--r-- | core/Tracker.php | 5 | ||||
-rw-r--r-- | core/Tracker/Response.php | 1 | ||||
-rwxr-xr-x | tests/PHPUnit/System/TrackerResponseTest.php | 10 |
3 files changed, 16 insertions, 0 deletions
diff --git a/core/Tracker.php b/core/Tracker.php index 3ed757c638..43310c06a6 100644 --- a/core/Tracker.php +++ b/core/Tracker.php @@ -264,6 +264,11 @@ class Tracker TrackerConfig::setConfigValue('enable_fingerprinting_across_websites', 1); } + // Tests can simulate the tracker API maintenance mode + if (Common::getRequestVar('forceEnableTrackerMaintenanceMode', false, null, $args) == 1) { + TrackerConfig::setConfigValue('record_statistics', 0); + } + // Tests can force the use of 3rd party cookie for ID visitor if (Common::getRequestVar('forceUseThirdPartyCookie', false, null, $args) == 1) { TrackerConfig::setConfigValue('use_third_party_id_cookie', 1); diff --git a/core/Tracker/Response.php b/core/Tracker/Response.php index 7927666511..d5a01d7c24 100644 --- a/core/Tracker/Response.php +++ b/core/Tracker/Response.php @@ -71,6 +71,7 @@ class Response public function outputResponse(Tracker $tracker) { if (!$tracker->shouldRecordStatistics()) { + Common::sendResponseCode(503); $this->outputApiResponse($tracker); Common::printDebug("Logging disabled, display transparent logo"); } elseif (!$tracker->hasLoggedRequests()) { diff --git a/tests/PHPUnit/System/TrackerResponseTest.php b/tests/PHPUnit/System/TrackerResponseTest.php index 05f6b749c3..98cd27baa0 100755 --- a/tests/PHPUnit/System/TrackerResponseTest.php +++ b/tests/PHPUnit/System/TrackerResponseTest.php @@ -114,4 +114,14 @@ class TrackerResponseTest extends SystemTestCase $this->assertHttpResponseText($expected, $url); } + + public function test_response_ShouldReturnPiwikMessageWithHttp503_InCaseOfMaintenanceMode() + { + $url = $this->tracker->getUrlTrackPageView('Test'); + $this->assertResponseCode(200, $url); + + $url = $url . "&forceEnableTrackerMaintenanceMode=1"; + $this->assertResponseCode(503, $url); + } + } |