Handle errors using a custom error handler
Without the custom handler, assertions after the first failure wouldn't be executed. This catches E_USER_DEPRECATED errors and passes everything else on to the phpunit error handler.
This commit is contained in:
parent
f49704b14f
commit
b35de9e15b
@ -17,6 +17,16 @@ use Symfony\Component\HttpFoundation\Request;
|
|||||||
|
|
||||||
class RequestTest extends \PHPUnit_Framework_TestCase
|
class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
|
public function deprecationErrorHandler($errorNumber, $message, $file, $line, $context)
|
||||||
|
{
|
||||||
|
if ($errorNumber & E_USER_DEPRECATED) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
\PHPUnit_Util_ErrorHandler::handleError($errorNumber, $message, $file, $line);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers Symfony\Component\HttpFoundation\Request::__construct
|
* @covers Symfony\Component\HttpFoundation\Request::__construct
|
||||||
*/
|
*/
|
||||||
@ -706,9 +716,9 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
$request->initialize(array(), array(), array(), array(), array(), $server);
|
$request->initialize(array(), array(), array(), array(), array(), $server);
|
||||||
if ($proxy) {
|
if ($proxy) {
|
||||||
$this->setExpectedException('PHPUnit_Framework_Error_Deprecated');
|
set_error_handler(array($this, "deprecationErrorHandler"));
|
||||||
|
|
||||||
$this->startTrustingProxyData();
|
$this->startTrustingProxyData();
|
||||||
|
restore_error_handler();
|
||||||
}
|
}
|
||||||
$this->assertEquals($expected, $request->getClientIp($proxy));
|
$this->assertEquals($expected, $request->getClientIp($proxy));
|
||||||
|
|
||||||
@ -823,11 +833,10 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->disableHttpMethodParameterOverride();
|
$this->disableHttpMethodParameterOverride();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException PHPUnit_Framework_Error_Deprecated
|
|
||||||
*/
|
|
||||||
public function testOverrideGlobals()
|
public function testOverrideGlobals()
|
||||||
{
|
{
|
||||||
|
set_error_handler(array($this, "deprecationErrorHandler"));
|
||||||
|
|
||||||
$request = new Request();
|
$request = new Request();
|
||||||
$request->initialize(array('foo' => 'bar'));
|
$request->initialize(array('foo' => 'bar'));
|
||||||
|
|
||||||
@ -858,6 +867,8 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
// restore initial $_SERVER array
|
// restore initial $_SERVER array
|
||||||
$_SERVER = $server;
|
$_SERVER = $server;
|
||||||
|
|
||||||
|
restore_error_handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetScriptName()
|
public function testGetScriptName()
|
||||||
@ -1100,13 +1111,14 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider splitHttpAcceptHeaderData
|
* @dataProvider splitHttpAcceptHeaderData
|
||||||
* @expectedException PHPUnit_Framework_Error_Deprecated
|
|
||||||
*/
|
*/
|
||||||
public function testSplitHttpAcceptHeader($acceptHeader, $expected)
|
public function testSplitHttpAcceptHeader($acceptHeader, $expected)
|
||||||
{
|
{
|
||||||
$request = new Request();
|
$request = new Request();
|
||||||
|
|
||||||
|
set_error_handler(array($this, "deprecationErrorHandler"));
|
||||||
$this->assertEquals($expected, $request->splitHttpAcceptHeader($acceptHeader));
|
$this->assertEquals($expected, $request->splitHttpAcceptHeader($acceptHeader));
|
||||||
|
restore_error_handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function splitHttpAcceptHeaderData()
|
public function splitHttpAcceptHeaderData()
|
||||||
@ -1254,9 +1266,6 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
|||||||
$property->setValue(false);
|
$property->setValue(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException PHPUnit_Framework_Error_Deprecated
|
|
||||||
*/
|
|
||||||
public function testTrustedProxies()
|
public function testTrustedProxies()
|
||||||
{
|
{
|
||||||
$request = Request::create('http://example.com/');
|
$request = Request::create('http://example.com/');
|
||||||
@ -1277,11 +1286,13 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertFalse($request->isSecure());
|
$this->assertFalse($request->isSecure());
|
||||||
|
|
||||||
// trusted proxy via deprecated trustProxyData()
|
// trusted proxy via deprecated trustProxyData()
|
||||||
|
set_error_handler(array($this, "deprecationErrorHandler"));
|
||||||
Request::trustProxyData();
|
Request::trustProxyData();
|
||||||
$this->assertEquals('2.2.2.2', $request->getClientIp());
|
$this->assertEquals('2.2.2.2', $request->getClientIp());
|
||||||
$this->assertEquals('real.example.com', $request->getHost());
|
$this->assertEquals('real.example.com', $request->getHost());
|
||||||
$this->assertEquals(443, $request->getPort());
|
$this->assertEquals(443, $request->getPort());
|
||||||
$this->assertTrue($request->isSecure());
|
$this->assertTrue($request->isSecure());
|
||||||
|
restore_error_handler();
|
||||||
|
|
||||||
// disabling proxy trusting
|
// disabling proxy trusting
|
||||||
Request::setTrustedProxies(array());
|
Request::setTrustedProxies(array());
|
||||||
|
@ -47,6 +47,16 @@ class SessionTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->session = null;
|
$this->session = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function deprecationErrorHandler($errorNumber, $message, $file, $line, $context)
|
||||||
|
{
|
||||||
|
if ($errorNumber & E_USER_DEPRECATED) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
\PHPUnit_Util_ErrorHandler::handleError($errorNumber, $message, $file, $line);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public function testStart()
|
public function testStart()
|
||||||
{
|
{
|
||||||
$this->assertEquals('', $this->session->getId());
|
$this->assertEquals('', $this->session->getId());
|
||||||
@ -191,11 +201,10 @@ class SessionTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
// deprecated since 2.1, will be removed from 2.3
|
// deprecated since 2.1, will be removed from 2.3
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException PHPUnit_Framework_Error_Deprecated
|
|
||||||
*/
|
|
||||||
public function testGetSetFlashes()
|
public function testGetSetFlashes()
|
||||||
{
|
{
|
||||||
|
set_error_handler(array($this, "deprecationErrorHandler"));
|
||||||
|
|
||||||
$array = array('notice' => 'hello', 'error' => 'none');
|
$array = array('notice' => 'hello', 'error' => 'none');
|
||||||
$this->assertEquals(array(), $this->session->getFlashes());
|
$this->assertEquals(array(), $this->session->getFlashes());
|
||||||
$this->session->setFlashes($array);
|
$this->session->setFlashes($array);
|
||||||
@ -206,13 +215,14 @@ class SessionTest extends \PHPUnit_Framework_TestCase
|
|||||||
// test that BC works by only retrieving the first added.
|
// test that BC works by only retrieving the first added.
|
||||||
$this->session->getFlashBag()->add('notice', 'foo2');
|
$this->session->getFlashBag()->add('notice', 'foo2');
|
||||||
$this->assertEquals(array('notice' => 'foo'), $this->session->getFlashes());
|
$this->assertEquals(array('notice' => 'foo'), $this->session->getFlashes());
|
||||||
|
|
||||||
|
restore_error_handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException PHPUnit_Framework_Error_Deprecated
|
|
||||||
*/
|
|
||||||
public function testGetFlashesWithArray()
|
public function testGetFlashesWithArray()
|
||||||
{
|
{
|
||||||
|
set_error_handler(array($this, "deprecationErrorHandler"));
|
||||||
|
|
||||||
$array = array('notice' => 'hello', 'error' => 'none');
|
$array = array('notice' => 'hello', 'error' => 'none');
|
||||||
$this->assertEquals(array(), $this->session->getFlashes());
|
$this->assertEquals(array(), $this->session->getFlashes());
|
||||||
$this->session->setFlash('foo', $array);
|
$this->session->setFlash('foo', $array);
|
||||||
@ -224,13 +234,14 @@ class SessionTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->session->setFlash('foo', $array);
|
$this->session->setFlash('foo', $array);
|
||||||
$this->assertEquals(array('foo' => 'hello'), $this->session->getFlashes());
|
$this->assertEquals(array('foo' => 'hello'), $this->session->getFlashes());
|
||||||
$this->assertEquals(array(), $this->session->getFlashes());
|
$this->assertEquals(array(), $this->session->getFlashes());
|
||||||
|
|
||||||
|
restore_error_handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException PHPUnit_Framework_Error_Deprecated
|
|
||||||
*/
|
|
||||||
public function testGetSetFlash()
|
public function testGetSetFlash()
|
||||||
{
|
{
|
||||||
|
set_error_handler(array($this, "deprecationErrorHandler"));
|
||||||
|
|
||||||
$this->assertNull($this->session->getFlash('notice'));
|
$this->assertNull($this->session->getFlash('notice'));
|
||||||
$this->assertEquals('default', $this->session->getFlash('notice', 'default'));
|
$this->assertEquals('default', $this->session->getFlash('notice', 'default'));
|
||||||
$this->session->getFlashBag()->add('notice', 'foo');
|
$this->session->getFlashBag()->add('notice', 'foo');
|
||||||
@ -239,36 +250,39 @@ class SessionTest extends \PHPUnit_Framework_TestCase
|
|||||||
// test that BC works by only retrieving the first added.
|
// test that BC works by only retrieving the first added.
|
||||||
$this->assertEquals('foo', $this->session->getFlash('notice'));
|
$this->assertEquals('foo', $this->session->getFlash('notice'));
|
||||||
$this->assertNull($this->session->getFlash('notice'));
|
$this->assertNull($this->session->getFlash('notice'));
|
||||||
|
|
||||||
|
restore_error_handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException PHPUnit_Framework_Error_Deprecated
|
|
||||||
*/
|
|
||||||
public function testHasFlash()
|
public function testHasFlash()
|
||||||
{
|
{
|
||||||
|
set_error_handler(array($this, "deprecationErrorHandler"));
|
||||||
|
|
||||||
$this->assertFalse($this->session->hasFlash('notice'));
|
$this->assertFalse($this->session->hasFlash('notice'));
|
||||||
$this->session->setFlash('notice', 'foo');
|
$this->session->setFlash('notice', 'foo');
|
||||||
$this->assertTrue($this->session->hasFlash('notice'));
|
$this->assertTrue($this->session->hasFlash('notice'));
|
||||||
|
|
||||||
|
restore_error_handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException PHPUnit_Framework_Error_Deprecated
|
|
||||||
*/
|
|
||||||
public function testRemoveFlash()
|
public function testRemoveFlash()
|
||||||
{
|
{
|
||||||
|
set_error_handler(array($this, "deprecationErrorHandler"));
|
||||||
|
|
||||||
$this->session->setFlash('notice', 'foo');
|
$this->session->setFlash('notice', 'foo');
|
||||||
$this->session->setFlash('error', 'bar');
|
$this->session->setFlash('error', 'bar');
|
||||||
$this->assertTrue($this->session->hasFlash('notice'));
|
$this->assertTrue($this->session->hasFlash('notice'));
|
||||||
$this->session->removeFlash('error');
|
$this->session->removeFlash('error');
|
||||||
$this->assertTrue($this->session->hasFlash('notice'));
|
$this->assertTrue($this->session->hasFlash('notice'));
|
||||||
$this->assertFalse($this->session->hasFlash('error'));
|
$this->assertFalse($this->session->hasFlash('error'));
|
||||||
|
|
||||||
|
restore_error_handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException PHPUnit_Framework_Error_Deprecated
|
|
||||||
*/
|
|
||||||
public function testClearFlashes()
|
public function testClearFlashes()
|
||||||
{
|
{
|
||||||
|
set_error_handler(array($this, "deprecationErrorHandler"));
|
||||||
|
|
||||||
$this->assertFalse($this->session->hasFlash('notice'));
|
$this->assertFalse($this->session->hasFlash('notice'));
|
||||||
$this->assertFalse($this->session->hasFlash('error'));
|
$this->assertFalse($this->session->hasFlash('error'));
|
||||||
$this->session->setFlash('notice', 'foo');
|
$this->session->setFlash('notice', 'foo');
|
||||||
@ -278,6 +292,8 @@ class SessionTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->session->clearFlashes();
|
$this->session->clearFlashes();
|
||||||
$this->assertFalse($this->session->hasFlash('notice'));
|
$this->assertFalse($this->session->hasFlash('notice'));
|
||||||
$this->assertFalse($this->session->hasFlash('error'));
|
$this->assertFalse($this->session->hasFlash('error'));
|
||||||
|
|
||||||
|
restore_error_handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user