diff --git a/test/requires.zep b/test/requires.zep index 2c38e6ce61..accf880a7e 100644 --- a/test/requires.zep +++ b/test/requires.zep @@ -1,8 +1,11 @@ namespace Test; +use Test\Requires\External3; + class Requires { + protected content; public function requireExternal1(var path) { @@ -15,4 +18,20 @@ class Requires return true; } + public function requireExternal3(var path) + { + var external3; + + if PHP_MAJOR_VERSION == 5 { + create_symbol_table(); + } + let external3 = new External3(); + external3->req(path, this); + return this->content; + } + + public function setContent(var content) + { + let this->content = content; + } } diff --git a/test/requires/External3.zep b/test/requires/External3.zep new file mode 100644 index 0000000000..b262d798be --- /dev/null +++ b/test/requires/External3.zep @@ -0,0 +1,18 @@ + +/** + * External3 operations + */ + +namespace Test\Requires; + +class External3 +{ + protected someVariable; + + public function req(var path, var requires) + { + ob_clean(); + require path; + requires->setContent(ob_get_contents()); + } +} diff --git a/unit-tests/Extension/RequiresTest.php b/unit-tests/Extension/RequiresTest.php index 0a63ccd2c0..b106916c77 100644 --- a/unit-tests/Extension/RequiresTest.php +++ b/unit-tests/Extension/RequiresTest.php @@ -19,12 +19,21 @@ namespace Extension; +use Test\Requires; + class RequiresTest extends \PHPUnit_Framework_TestCase { public function testRequireExternal1() { - $r = new \Test\Requires(); + $r = new Requires(); $this->assertSame($r->requireExternal1(__DIR__ . '/php/require-me-1.php'), array(1, 2, 3)); $this->assertTrue($r->requireExternal1(__DIR__ . '/php/require-me-2.php') && defined('REQUIRE_ME')); } + + public function testRequireExternal3() + { + $r = new Requires(); + $output = $r->requireExternal3(__DIR__ . '/php/require-me-3.php'); + $this->assertSame("test", $output); + } } diff --git a/unit-tests/Extension/php/require-me-3.php b/unit-tests/Extension/php/require-me-3.php new file mode 100644 index 0000000000..523d7a13b7 --- /dev/null +++ b/unit-tests/Extension/php/require-me-3.php @@ -0,0 +1,3 @@ +someVariable["test"] = "test"; +echo $this->someVariable["test"];