Exemplo n.º 1
0
 function testTrappedErrorPLacedInQueue() {
     $queue = &SimpleErrorQueue::instance();
     $this->assertFalse($queue->extract());
     trigger_error('Ouch!');
     list($severity, $message, $file, $line, $globals) = $queue->extract();
     $this->assertEqual($message, 'Ouch!');
     $this->assertEqual($file, __FILE__);
     $this->assertFalse($queue->extract());
 }
Exemplo n.º 2
0
 function invoke($method)
 {
     set_error_handler('simpleTestErrorHandler');
     parent::invoke($method);
     $queue =& SimpleErrorQueue::instance();
     while (list($severity, $message, $file, $line, $globals) = $queue->extract()) {
         $test_case =& $this->getTestCase();
         $test_case->error($severity, $message, $file, $line, $globals);
     }
     restore_error_handler();
 }
Exemplo n.º 3
0
function simpleTestErrorHandler($severity, $message, $filename, $line, $super_globals)
{
    if ($severity = $severity & error_reporting()) {
        restore_error_handler();
        if (ini_get('log_errors')) {
            $label = SimpleErrorQueue::getSeverityAsString($severity);
            error_log("{$label}: {$message} in {$filename} on line {$line}");
        }
        $queue =& SimpleErrorQueue::instance();
        $queue->add($severity, $message, $filename, $line, $super_globals);
        set_error_handler('simpleTestErrorHandler');
    }
}
Exemplo n.º 4
0
 function swallowErrors()
 {
     $queue =& SimpleErrorQueue::instance();
     $queue->clear();
 }
Exemplo n.º 5
0
 /**
  *    Confirms that an error has occoured and
  *    that the error text matches a Perl regular
  *    expression.
  *    @param string $expected   Perl regular expresion to
  *                              match against.
  *    @param string $message    Message to display.
  *    @return boolean           True on pass
  *    @access public
  */
 function assertErrorPattern($pattern, $message = "%s")
 {
     $queue =& SimpleErrorQueue::instance();
     if ($queue->isEmpty()) {
         $this->fail(sprintf($message, "Expected error not found"));
         return;
     }
     list($severity, $content, $file, $line, $globals) = $queue->extract();
     $severity = SimpleErrorQueue::getSeverityAsString($severity);
     return $this->assertTrue((bool) preg_match($pattern, $content), "Expected pattern match [{$pattern}] in PHP error [{$content}] severity [{$severity}] in [{$file}] line [{$line}]");
 }
Exemplo n.º 6
0
 /**
  *    Confirms that an error has occoured and
  *    optionally that the error text matches exactly.
  *    @param string $expected   Expected error text or
  *                              false for no check.
  *    @param string $message    Message to display.
  *    @return boolean           True on pass
  *    @access public
  */
 function assertError($expected = false, $message = "%s")
 {
     $queue =& SimpleErrorQueue::instance();
     if ($queue->isEmpty()) {
         $this->fail(sprintf($message, "Expected error not found"));
         return;
     }
     list($severity, $content, $file, $line, $globals) = $queue->extract();
     $severity = SimpleErrorQueue::getSeverityAsString($severity);
     if (!$expected) {
         return $this->pass("Captured a PHP error of [{$content}] severity [{$severity}] in [{$file}] line [{$line}] -> %s");
     }
     $expected = $this->_coerceToExpectation($expected);
     return $this->assert($expected, $content, "Expected PHP error [{$content}] severity [{$severity}] in [{$file}] line [{$line}] -> %s");
 }
Exemplo n.º 7
0
 /**
  *    Error handler that simply stashes any
  *    errors into the global error queue.
  *    @param $severity        PHP error code.
  *    @param $message         Text of error.
  *    @param $filename        File error occoured in.
  *    @param $line            Line number of error.
  *    @param $super_globals   Hash of PHP super global arrays.
  *    @static
  *    @access public
  */
 function simpleTestErrorHandler($severity, $message, $filename, $line, $super_globals) {
     restore_error_handler();
     if ($severity = $severity & error_reporting()) {
         $queue = &SimpleErrorQueue::instance();
         $queue->add($severity, $message, $filename, $line, $super_globals);
     }
     set_error_handler('simpleTestErrorHandler');
 }