mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Exiting with 1 when Exception::getCode() returns non-integer values.
From php.net/exception.getcode > Returns the exception code as integer in Exception but possibly as other type in Exception descendants (for example as string in PDOException).
This commit is contained in:
parent
e8ee25f40d
commit
1a89a3cb9d
2 changed files with 30 additions and 1 deletions
|
@ -58,7 +58,9 @@ class ConsoleErrorHandler {
|
||||||
$exception->getMessage(),
|
$exception->getMessage(),
|
||||||
$exception->getTraceAsString()
|
$exception->getTraceAsString()
|
||||||
));
|
));
|
||||||
return $this->_stop($exception->getCode() ? $exception->getCode() : 1);
|
$code = $exception->getCode();
|
||||||
|
$code = ($code && is_integer($code)) ? $code : 1;
|
||||||
|
return $this->_stop($code);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -147,4 +147,31 @@ class ConsoleErrorHandlerTest extends CakeTestCase {
|
||||||
$this->Error->handleException($exception);
|
$this->Error->handleException($exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* test a exception with non-integer code
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testNonIntegerExceptionCode() {
|
||||||
|
if (PHP_VERSION_ID < 50300) {
|
||||||
|
$this->markTestSkipped('ReflectionProperty::setAccessible() is available since 5.3');
|
||||||
|
}
|
||||||
|
|
||||||
|
$exception = new Exception('Non-integer exception code');
|
||||||
|
|
||||||
|
$class = new ReflectionClass('Exception');
|
||||||
|
$property = $class->getProperty('code');
|
||||||
|
$property->setAccessible(true);
|
||||||
|
$property->setValue($exception, '42S22');
|
||||||
|
|
||||||
|
ConsoleErrorHandler::$stderr->expects($this->once())->method('write')
|
||||||
|
->with($this->stringContains('Non-integer exception code'));
|
||||||
|
|
||||||
|
$this->Error->expects($this->once())
|
||||||
|
->method('_stop')
|
||||||
|
->with(1);
|
||||||
|
|
||||||
|
$this->Error->handleException($exception);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue