Update Composer, update everything
This commit is contained in:
parent
ea3e94409f
commit
dda5c284b6
19527 changed files with 1135420 additions and 351004 deletions
125
vendor/psy/psysh/test/Exception/ErrorExceptionTest.php
vendored
Normal file
125
vendor/psy/psysh/test/Exception/ErrorExceptionTest.php
vendored
Normal file
|
@ -0,0 +1,125 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2018 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Psy\Test\Exception;
|
||||
|
||||
use Psy\Exception\ErrorException;
|
||||
|
||||
class ErrorExceptionTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
public function testInstance()
|
||||
{
|
||||
$e = new ErrorException();
|
||||
|
||||
$this->assertInstanceOf('Psy\Exception\Exception', $e);
|
||||
$this->assertInstanceOf('ErrorException', $e);
|
||||
$this->assertInstanceOf('Psy\Exception\ErrorException', $e);
|
||||
}
|
||||
|
||||
public function testMessage()
|
||||
{
|
||||
$e = new ErrorException('foo');
|
||||
|
||||
$this->assertContains('foo', $e->getMessage());
|
||||
$this->assertSame('foo', $e->getRawMessage());
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider getLevels
|
||||
*/
|
||||
public function testErrorLevels($level, $type)
|
||||
{
|
||||
$e = new ErrorException('foo', 0, $level);
|
||||
$this->assertContains('PHP ' . $type, $e->getMessage());
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider getLevels
|
||||
*/
|
||||
public function testThrowException($level, $type)
|
||||
{
|
||||
try {
|
||||
ErrorException::throwException($level, '{whot}', '{file}', '13');
|
||||
} catch (ErrorException $e) {
|
||||
$this->assertContains('PHP ' . $type, $e->getMessage());
|
||||
$this->assertContains('{whot}', $e->getMessage());
|
||||
$this->assertContains('in {file}', $e->getMessage());
|
||||
$this->assertContains('on line 13', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function getLevels()
|
||||
{
|
||||
return [
|
||||
[E_WARNING, 'Warning'],
|
||||
[E_CORE_WARNING, 'Warning'],
|
||||
[E_COMPILE_WARNING, 'Warning'],
|
||||
[E_USER_WARNING, 'Warning'],
|
||||
[E_STRICT, 'Strict error'],
|
||||
[E_DEPRECATED, 'Deprecated'],
|
||||
[E_USER_DEPRECATED, 'Deprecated'],
|
||||
[E_RECOVERABLE_ERROR, 'Recoverable fatal error'],
|
||||
[0, 'Error'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider getUserLevels
|
||||
*/
|
||||
public function testThrowExceptionAsErrorHandler($level, $type)
|
||||
{
|
||||
\set_error_handler(['Psy\Exception\ErrorException', 'throwException']);
|
||||
try {
|
||||
\trigger_error('{whot}', $level);
|
||||
} catch (ErrorException $e) {
|
||||
$this->assertContains('PHP ' . $type, $e->getMessage());
|
||||
$this->assertContains('{whot}', $e->getMessage());
|
||||
}
|
||||
\restore_error_handler();
|
||||
}
|
||||
|
||||
public function getUserLevels()
|
||||
{
|
||||
return [
|
||||
[E_USER_ERROR, 'Error'],
|
||||
[E_USER_WARNING, 'Warning'],
|
||||
[E_USER_NOTICE, 'Notice'],
|
||||
[E_USER_DEPRECATED, 'Deprecated'],
|
||||
];
|
||||
}
|
||||
|
||||
public function testIgnoreExecutionLoopFilename()
|
||||
{
|
||||
$e = new ErrorException('{{message}}', 0, 1, '/fake/path/to/Psy/ExecutionLoop.php');
|
||||
$this->assertEmpty($e->getFile());
|
||||
|
||||
$e = new ErrorException('{{message}}', 0, 1, 'c:\fake\path\to\Psy\ExecutionLoop.php');
|
||||
$this->assertEmpty($e->getFile());
|
||||
|
||||
$e = new ErrorException('{{message}}', 0, 1, '/fake/path/to/Psy/File.php');
|
||||
$this->assertNotEmpty($e->getFile());
|
||||
}
|
||||
|
||||
public function testFromError()
|
||||
{
|
||||
if (\version_compare(PHP_VERSION, '7.0.0', '<')) {
|
||||
$this->markTestSkipped();
|
||||
}
|
||||
|
||||
$error = new \Error('{{message}}', 0);
|
||||
$exception = ErrorException::fromError($error);
|
||||
|
||||
$this->assertContains('PHP Error: {{message}}', $exception->getMessage());
|
||||
$this->assertEquals(0, $exception->getCode());
|
||||
$this->assertEquals($error->getFile(), $exception->getFile());
|
||||
$this->assertSame($exception->getPrevious(), $error);
|
||||
}
|
||||
}
|
Reference in a new issue