diff --git a/core/tests/Drupal/Tests/Core/Access/CsrfTokenGeneratorTest.php b/core/tests/Drupal/Tests/Core/Access/CsrfTokenGeneratorTest.php index 88a7d2b..38f1ad6 100644 --- a/core/tests/Drupal/Tests/Core/Access/CsrfTokenGeneratorTest.php +++ b/core/tests/Drupal/Tests/Core/Access/CsrfTokenGeneratorTest.php @@ -71,10 +71,14 @@ public function testValidate() { $token = $this->generator->get('bar'); $this->assertTrue($this->generator->validate($token, 'bar')); -// $this->assertFalse($this->generator->validate(NULL, new \stdClass()), 'Token NULL, value object returns FALSE.'); -// $this->assertFalse($this->generator->validate(0, array()), 'Token 0, value array returns FALSE.'); -// $this->assertFalse($this->generator->validate('', array()), "Token '', value array returns FALSE."); -// $this->assertFalse('' === $this->generator->validate(array()), 'Token generation does not return an empty string on invalid parameters.'); + // The following checks will throw PHP fatals and notices, so we disable + // error assertions. + set_error_handler(array($this, "errorHandler")); + $this->assertFalse($this->generator->validate(NULL, new \stdClass()), 'Token NULL, value object returns FALSE.'); + $this->assertFalse($this->generator->validate(0, array()), 'Token 0, value array returns FALSE.'); + $this->assertFalse($this->generator->validate('', array()), "Token '', value array returns FALSE."); + $this->assertFalse('' === $this->generator->validate(array()), 'Token generation does not return an empty string on invalid parameters.'); + restore_error_handler(); $this->assertFalse($this->generator->validate(TRUE, 'foo'), 'Token TRUE, value foo returns FALSE.'); $this->assertFalse($this->generator->validate(0, 'foo'), 'Token 0, value foo returns FALSE.'); @@ -97,6 +101,13 @@ public function testValidate() { $this->assertFalse($this->generator->validate($token, 'foo', TRUE)); } + /** + * Provides a custom error handler that disables all reporting. + */ + public function errorHandler($errno, $errstr, $errfile, $errline, $errcontext) { + return TRUE; + } + } }