getDeeperStackTrace( $foo, $bar ); } private function getDeeperStackTrace( $foo, $bar ) { return xdebug_get_function_stack(); } public static function suite() { return new PHPUnit_Framework_TestSuite( __CLASS__ ); } protected function setup() { if ( !extension_loaded( 'xdebug' ) ) { $this->markTestSkipped( 'Only run when Xdebug is available.' ); } } public function testIterateTrace() { $opts = new ezcDebugOptions(); $itr = new ezcDebugXdebugStacktraceIterator( $this->getStackTrace( 'some string', array( true, 23, null ) ), 0, $opts ); $res = require 'data/xdebug_stacktrace_iterator_test__testSimpleTrace.php'; foreach ( $itr as $key => $value ) { // Remove 'file' keys to not store system dependant pathes. $this->assertTrue( isset( $value['file'] ) ); unset( $value['file'] ); $this->assertEquals( $res[$key], $value, "Incorrect stack element $key." ); } } public function testCountTrace() { $opts = new ezcDebugOptions(); $itr = new ezcDebugXdebugStacktraceIterator( $this->getStackTrace( 'some string', array( true, 23, null ) ), 0, $opts ); $this->assertEquals( 5, count( $itr ) ); } } ?>