From 43f3d250f45e095150d12185f9ac8bfaad27d1cc Mon Sep 17 00:00:00 2001 From: Timm Friebe Date: Sun, 5 Oct 2014 14:27:21 +0200 Subject: [PATCH] Add tests verifying calls work inside echo, concatenation and array access --- .../methods-on-non-objects-array-access.phpt | 18 ++++++++++ ...methods-on-non-objects-array-creation.phpt | 35 +++++++++++++++++++ Zend/tests/methods-on-non-objects-concat.phpt | 18 ++++++++++ .../tests/methods-on-non-objects-in-echo.phpt | 18 ++++++++++ 4 files changed, 89 insertions(+) create mode 100755 Zend/tests/methods-on-non-objects-array-access.phpt create mode 100755 Zend/tests/methods-on-non-objects-array-creation.phpt create mode 100755 Zend/tests/methods-on-non-objects-concat.phpt create mode 100755 Zend/tests/methods-on-non-objects-in-echo.phpt diff --git a/Zend/tests/methods-on-non-objects-array-access.phpt b/Zend/tests/methods-on-non-objects-array-access.phpt new file mode 100755 index 0000000000..be87457c6c --- /dev/null +++ b/Zend/tests/methods-on-non-objects-array-access.phpt @@ -0,0 +1,18 @@ +--TEST-- +Catch method calls on non-objects inside array access +--FILE-- + 'OK']; +var_dump($a[$x->method()]); +echo "Alive\n"; +?> +--EXPECTF-- +int(4096) +string(%d) "Call to a member function method() on null" +string(2) "OK" +Alive \ No newline at end of file diff --git a/Zend/tests/methods-on-non-objects-array-creation.phpt b/Zend/tests/methods-on-non-objects-array-creation.phpt new file mode 100755 index 0000000000..74cbb9c179 --- /dev/null +++ b/Zend/tests/methods-on-non-objects-array-creation.phpt @@ -0,0 +1,35 @@ +--TEST-- +Catch method calls on non-objects inside array creation +--FILE-- +method() => 'OK']); +var_dump([$x->method(), $x->method(), $x->method()]); +echo "Alive\n"; +?> +--EXPECTF-- +int(4096) +string(%d) "Call to a member function method() on null" +array(1) { + [""]=> + string(2) "OK" +} +int(4096) +string(%d) "Call to a member function method() on null" +int(4096) +string(%d) "Call to a member function method() on null" +int(4096) +string(%d) "Call to a member function method() on null" +array(3) { + [0]=> + NULL + [1]=> + NULL + [2]=> + NULL +} +Alive \ No newline at end of file diff --git a/Zend/tests/methods-on-non-objects-concat.phpt b/Zend/tests/methods-on-non-objects-concat.phpt new file mode 100755 index 0000000000..4ff47aa454 --- /dev/null +++ b/Zend/tests/methods-on-non-objects-concat.phpt @@ -0,0 +1,18 @@ +--TEST-- +Catch method calls on non-objects inside concatenation +--FILE-- +method()."After\n"; +echo "Alive\n"; +?> +--EXPECTF-- +int(4096) +string(%d) "Call to a member function method() on null" +Before +After +Alive \ No newline at end of file diff --git a/Zend/tests/methods-on-non-objects-in-echo.phpt b/Zend/tests/methods-on-non-objects-in-echo.phpt new file mode 100755 index 0000000000..a0267c0ea5 --- /dev/null +++ b/Zend/tests/methods-on-non-objects-in-echo.phpt @@ -0,0 +1,18 @@ +--TEST-- +Catch method calls on non-objects inside echo +--FILE-- +method(), "After\n"; +echo "Alive\n"; +?> +--EXPECTF-- +Before +int(4096) +string(%d) "Call to a member function method() on null" +After +Alive \ No newline at end of file -- 2.40.0