From 2e12b89f64b9e35cd1b3f2f4198aa4a095146642 Mon Sep 17 00:00:00 2001 From: Mark Story Date: Mon, 14 Mar 2016 21:45:48 -0400 Subject: [PATCH] Add test assertions and refactor shared code. Refs #8439 --- src/Error/BaseErrorHandler.php | 48 +++++++++++------------ tests/TestCase/Error/ErrorHandlerTest.php | 4 +- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/Error/BaseErrorHandler.php b/src/Error/BaseErrorHandler.php index d9d767adf23..107806258c7 100644 --- a/src/Error/BaseErrorHandler.php +++ b/src/Error/BaseErrorHandler.php @@ -270,22 +270,11 @@ protected function _logError($level, $data) 'start' => 1, 'format' => 'log' ]); - + $request = Router::getRequest(); if ($request) { - $message .= "\nRequest URL: " . $request->here(); - - $referer = $request->env('HTTP_REFERER'); - if ($referer) { - $message .= "\nReferer URL: " . $referer; - } - - $clientIp = $request->clientIp(); - if ($clientIp && $clientIp !== '::1') { - $message .= "\nClient IP: " . $clientIp; - } + $message .= $this->_requestContext($request); } - $message .= "\nTrace:\n" . $trace . "\n"; } $message .= "\n\n"; @@ -319,6 +308,27 @@ protected function _logException(Exception $exception) return Log::error($this->_getMessage($exception)); } + /** + * Get the request context for an error/exception trace. + * + * @param \Cake\Network\Request $request The request to read from. + * @return string + */ + protected function _requestContext($request) + { + $message = "\nRequest URL: " . $request->here(); + + $referer = $request->env('HTTP_REFERER'); + if ($referer) { + $message .= "\nReferer URL: " . $referer; + } + $clientIp = $request->clientIp(); + if ($clientIp && $clientIp !== '::1') { + $message .= "\nClient IP: " . $clientIp; + } + return $message; + } + /** * Generates a formatted error message * @@ -347,17 +357,7 @@ protected function _getMessage(Exception $exception) $request = Router::getRequest(); if ($request) { - $message .= "\nRequest URL: " . $request->here(); - - $referer = $request->env('HTTP_REFERER'); - if ($referer) { - $message .= "\nReferer URL: " . $referer; - } - - $clientIp = $request->clientIp(); - if ($clientIp && $clientIp !== '::1') { - $message .= "\nClient IP: " . $clientIp; - } + $message .= $this->_requestContext($request); } if (!empty($config['trace'])) { diff --git a/tests/TestCase/Error/ErrorHandlerTest.php b/tests/TestCase/Error/ErrorHandlerTest.php index 88346ae82fb..44a5dda81f9 100644 --- a/tests/TestCase/Error/ErrorHandlerTest.php +++ b/tests/TestCase/Error/ErrorHandlerTest.php @@ -222,7 +222,9 @@ public function testHandleErrorLoggingTrace() $this->logicalAnd( $this->stringContains('Notice (8): Undefined variable: out in '), $this->stringContains('Trace:'), - $this->stringContains(__NAMESPACE__ . '\ErrorHandlerTest::testHandleErrorLoggingTrace()') + $this->stringContains(__NAMESPACE__ . '\ErrorHandlerTest::testHandleErrorLoggingTrace()'), + $this->stringContains('Request URL:'), + $this->stringContains('Referer URL:') ) );