From 13e2857ac9208f9ded1f3e524de2c9b5a4a4db6f Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Fri, 18 Apr 2014 11:45:21 +0200 Subject: [PATCH] Workaround for "Nesting level too deep - recursive dependency?" fatal error on PHP 5.3.3 --- tests/ExporterTest.php | 153 ++++++++++++++++++++++------------------- 1 file changed, 83 insertions(+), 70 deletions(-) diff --git a/tests/ExporterTest.php b/tests/ExporterTest.php index 99a3573..85d2624 100644 --- a/tests/ExporterTest.php +++ b/tests/ExporterTest.php @@ -86,21 +86,6 @@ class ExporterTest extends \PHPUnit_Framework_TestCase $storage->attach($obj2); $storage->foo = $obj2; - $array = array( - 0 => 0, - 'null' => NULL, - 'boolean' => TRUE, - 'integer' => 1, - 'double' => 1.2, - 'string' => '1', - 'text' => "this\nis\na\nvery\nvery\nvery\nvery\nvery\nvery\rlong\n\rtext", - 'object' => $obj2, - 'objectagain' => $obj2, - 'array' => array('foo' => 'bar'), - ); - - $array['self'] = &$array; - return array( array(NULL, 'null'), array(TRUE, 'true'), @@ -173,61 +158,6 @@ text' EOF ), array(array(), 'Array &%d ()'), - array($array, -<< 0 - 'null' => null - 'boolean' => true - 'integer' => 1 - 'double' => 1.2 - 'string' => '1' - 'text' => 'this -is -a -very -very -very -very -very -very -long -text' - 'object' => stdClass Object &%x ( - 'foo' => 'bar' - ) - 'objectagain' => stdClass Object &%x - 'array' => Array &%d ( - 'foo' => 'bar' - ) - 'self' => Array &%d ( - 0 => 0 - 'null' => null - 'boolean' => true - 'integer' => 1 - 'double' => 1.2 - 'string' => '1' - 'text' => 'this -is -a -very -very -very -very -very -very -long -text' - 'object' => stdClass Object &%x - 'objectagain' => stdClass Object &%x - 'array' => Array &%d ( - 'foo' => 'bar' - ) - 'self' => Array &%d - ) -) -EOF - ), array($storage, <<markTestSkipped('Skipped due to "Nesting level too deep - recursive dependency?" fatal error'); + } + + $obj = new \stdClass; + $obj->foo = 'bar'; + + $array = array( + 0 => 0, + 'null' => NULL, + 'boolean' => TRUE, + 'integer' => 1, + 'double' => 1.2, + 'string' => '1', + 'text' => "this\nis\na\nvery\nvery\nvery\nvery\nvery\nvery\rlong\n\rtext", + 'object' => $obj, + 'objectagain' => $obj, + 'array' => array('foo' => 'bar'), + ); + + $array['self'] = &$array; + + $expected = << 0 + 'null' => null + 'boolean' => true + 'integer' => 1 + 'double' => 1.2 + 'string' => '1' + 'text' => 'this +is +a +very +very +very +very +very +very +long +text' + 'object' => stdClass Object &%x ( + 'foo' => 'bar' + ) + 'objectagain' => stdClass Object &%x + 'array' => Array &%d ( + 'foo' => 'bar' + ) + 'self' => Array &%d ( + 0 => 0 + 'null' => null + 'boolean' => true + 'integer' => 1 + 'double' => 1.2 + 'string' => '1' + 'text' => 'this +is +a +very +very +very +very +very +very +long +text' + 'object' => stdClass Object &%x + 'objectagain' => stdClass Object &%x + 'array' => Array &%d ( + 'foo' => 'bar' + ) + 'self' => Array &%d + ) +) +EOF; + + $this->assertStringMatchesFormat( + $expected, $this->trimnl($this->exporter->export($array)) + ); + } + public function shortenedExportProvider() { $obj = new \stdClass;