summaryrefslogtreecommitdiff
path: root/tests/php/phpt/variables
diff options
context:
space:
mode:
authorEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-03-29 13:10:46 +0100
committerEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-03-29 13:10:46 +0100
commit7b7efa4f80dc5c9d26b59087270a8d89fedcc808 (patch)
tree1dfb0ce4a6662a5bcb6562b40ab91f813a959afc /tests/php/phpt/variables
parentc0e1f20eeab6445d6355ea11ef7d264cb37c52cf (diff)
parent8bd7f5162870e4b39c7629c1a67a3372402406c9 (diff)
Merge pull request #56 from valmat/tests
New tests
Diffstat (limited to 'tests/php/phpt/variables')
-rw-r--r--tests/php/phpt/variables/003-value-types.phpt (renamed from tests/php/phpt/variables/003-value-types.phpt-)0
-rw-r--r--tests/php/phpt/variables/005-cast-objects-to-scalars.phpt22
-rw-r--r--tests/php/phpt/variables/011-value-casting-operators.phpt (renamed from tests/php/phpt/variables/005-value-casting-operators.phpt-)26
-rw-r--r--tests/php/phpt/variables/012-value-casting-operators-double.phpt80
-rw-r--r--tests/php/phpt/variables/013-calling-php-functions.phpt113
-rw-r--r--tests/php/phpt/variables/014-calling-php-functions.phpt113
-rw-r--r--tests/php/phpt/variables/015-calling-php-functions.phpt109
-rw-r--r--tests/php/phpt/variables/016-calling-php-functions.phpt113
-rw-r--r--tests/php/phpt/variables/017-calling-php-functions.phpt115
-rw-r--r--tests/php/phpt/variables/018-calling-php-functions.phpt32
-rw-r--r--tests/php/phpt/variables/readme4
11 files changed, 703 insertions, 24 deletions
diff --git a/tests/php/phpt/variables/003-value-types.phpt- b/tests/php/phpt/variables/003-value-types.phpt
index 477fbe2..477fbe2 100644
--- a/tests/php/phpt/variables/003-value-types.phpt-
+++ b/tests/php/phpt/variables/003-value-types.phpt
diff --git a/tests/php/phpt/variables/005-cast-objects-to-scalars.phpt b/tests/php/phpt/variables/005-cast-objects-to-scalars.phpt
new file mode 100644
index 0000000..9de9ba5
--- /dev/null
+++ b/tests/php/phpt/variables/005-cast-objects-to-scalars.phpt
@@ -0,0 +1,22 @@
+--TEST--
+cast objects to scalars
+--DESCRIPTION--
+http://www.phpcpp.com/documentation/special-features#casting-functions
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--FILEEOF--
+<?php
+
+
+function bool2str($b) {
+ return $b ? "Yes" : "No";
+}
+$obj = new TestVariables\Obj2Scalar();
+echo " long: ", (int)$obj, "\n string: ", (string)$obj, "\n double: ", (double)$obj, "\n bool: ", bool2str((bool)$obj);
+
+
+--EXPECT--
+ long: 27032014
+ string: Mount Meru, also called Sumeru (Sanskrit)
+ double: 3.14159265359
+ bool: Yes
diff --git a/tests/php/phpt/variables/005-value-casting-operators.phpt- b/tests/php/phpt/variables/011-value-casting-operators.phpt
index 5e0fb8e..3fe6817 100644
--- a/tests/php/phpt/variables/005-value-casting-operators.phpt-
+++ b/tests/php/phpt/variables/011-value-casting-operators.phpt
@@ -3,13 +3,9 @@ Test Php::Value casting operators
--DESCRIPTION--
The Php::Value class has casting operators to cast the object to almost every thinkable native type.
-
-It seems need to replace double on long double
-
native_value_casting - repeats the behavior of c++ functions TestVariables\value_casting
the output of each of these functions should be the same
-
--SKIPIF--
<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
--FILEEOF--
@@ -20,7 +16,8 @@ function bool2str($b) {
return $b ? "Yes" : "No";
}
function native_value_casting($value) {
- echo " long:", (int)$value, "\n string:", (string)$value, "\n double:", (double)$value, "\n bool:", bool2str((bool)$value), PHP_EOL;
+ //echo " long:", (int)$value, "\n string:", (string)$value, "\n double:", (double)$value, "\n bool:", bool2str((bool)$value), PHP_EOL;
+ echo " long:", (int)$value, "\n string:", (string)$value, "\n bool:", bool2str((bool)$value), PHP_EOL;
}
@@ -61,114 +58,95 @@ out(0x1A); // hexadecimal number (equivalent to 26 decimal)
Test 5555555555555555:
long:5555555555555555
string:5555555555555555
- double:5.5555555555556E+15
bool:Yes
Test '9223372036854775807':
long:9223372036854775807
string:9223372036854775807
- double:9.2233720368548E+18
bool:Yes
Test 9223372036854775807:
long:9223372036854775807
string:9223372036854775807
- double:9.2233720368548E+18
bool:Yes
Test 5:
long:5
string:5
- double:5
bool:Yes
Test -99999999:
long:-99999999
string:-99999999
- double:-99999999
bool:Yes
Test '18':
long:18
string:18
- double:18
bool:Yes
Test '3.14159265359':
long:3
string:3.14159265359
- double:3.14159265359
bool:Yes
Test 3.14159265359:
long:3
string:3.14159265359
- double:3.14159265359
bool:Yes
Test 3.5714285714286:
long:3
string:3.5714285714286
- double:3.5714285714286
bool:Yes
Test ' this is a string ':
long:0
string: this is a string
- double:0
bool:Yes
Test ' 2-nd string ':
long:2
string: 2-nd string
- double:2
bool:Yes
Test 'false':
long:0
string:false
- double:0
bool:Yes
Test false:
long:0
string:
- double:0
bool:No
Test 'true':
long:0
string:true
- double:0
bool:Yes
Test true:
long:1
string:1
- double:1
bool:Yes
Test 0:
long:0
string:0
- double:0
bool:No
Test '0':
long:0
string:0
- double:0
bool:No
Test 83:
long:83
string:83
- double:83
bool:Yes
Test 26:
long:26
string:26
- double:26
bool:Yes
diff --git a/tests/php/phpt/variables/012-value-casting-operators-double.phpt b/tests/php/phpt/variables/012-value-casting-operators-double.phpt
new file mode 100644
index 0000000..32086ef
--- /dev/null
+++ b/tests/php/phpt/variables/012-value-casting-operators-double.phpt
@@ -0,0 +1,80 @@
+--TEST--
+Test Php::Value casting operators (double)
+--DESCRIPTION--
+The Php::Value class has casting operators to cast the object to almost every thinkable native type.
+
+native_value_casting - repeats the behavior of c++ functions TestVariables\value_casting
+the output of each of these functions should be the same
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--FILEEOF--
+<?php
+
+
+
+function out($v) {
+ echo 'Test ';
+ var_export($v);
+ echo ':', PHP_EOL;
+ TestVariables\value_cast2double($v);
+ //echo (double)$v, PHP_EOL;;
+ //echo PHP_EOL;
+}
+
+out(5555555555555555);
+out("999999999999999");
+out(999999999999999);
+out(5);
+out(-99999999);
+out("18");
+out("3.14159265359");
+out(3.14159265359);
+out(" this is a string ");
+out(" 2-nd string ");
+out("false");
+out(false);
+out("true");
+out(true);
+out(0);
+out("0");
+out(0123); // octal number (equivalent to 83 decimal)
+out(0x1A); // hexadecimal number (equivalent to 26 decimal)
+
+
+--EXPECT--
+Test 5555555555555555:
+5555555555555555
+Test '999999999999999':
+999999999999999
+Test 999999999999999:
+999999999999999
+Test 5:
+5
+Test -99999999:
+-99999999
+Test '18':
+18
+Test '3.14159265359':
+3.14159265359
+Test 3.14159265359:
+3.14159265359
+Test ' this is a string ':
+0
+Test ' 2-nd string ':
+2
+Test 'false':
+0
+Test false:
+0
+Test 'true':
+0
+Test true:
+1
+Test 0:
+0
+Test '0':
+0
+Test 83:
+83
+Test 26:
+26 \ No newline at end of file
diff --git a/tests/php/phpt/variables/013-calling-php-functions.phpt b/tests/php/phpt/variables/013-calling-php-functions.phpt
new file mode 100644
index 0000000..5ec6644
--- /dev/null
+++ b/tests/php/phpt/variables/013-calling-php-functions.phpt
@@ -0,0 +1,113 @@
+--TEST--
+calling-php-functions from userspace
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--FILEEOF--
+<?php
+
+
+
+function some_function($param) {
+ echo("userspace function called with parameters:\n");
+ var_export(func_get_args ());
+}
+
+TestVariables\fnFromUserSpace();
+
+
+
+--EXPECT--
+fnFromUserSpace
+userspace function called with parameters:
+array (
+ 0 => 'param1',
+)userspace function called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+)userspace function called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+)userspace function called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+)userspace function called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 =>
+ array (
+ 0 => 'param5',
+ 1 => 3.14159265359,
+ 2 => 28032014,
+ 'key' => 'value',
+ ),
+)userspace function called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 =>
+ array (
+ 0 => 'param5',
+ 1 => 3.14159265359,
+ 2 => 28032014,
+ 'key' => 'value',
+ ),
+ 5 =>
+ DateTime::__set_state(array(
+ 'date' => '2014-03-28 19:42:15',
+ 'timezone_type' => 3,
+ 'timezone' => 'Asia/Yekaterinburg',
+ )),
+)userspace function called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+)userspace function called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+)userspace function called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+ 8 => 'param9',
+)userspace function called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+ 8 => 'param9',
+ 9 => 'param10',
+) \ No newline at end of file
diff --git a/tests/php/phpt/variables/014-calling-php-functions.phpt b/tests/php/phpt/variables/014-calling-php-functions.phpt
new file mode 100644
index 0000000..4a05e2a
--- /dev/null
+++ b/tests/php/phpt/variables/014-calling-php-functions.phpt
@@ -0,0 +1,113 @@
+--TEST--
+calling-php-Callback-functions
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--FILEEOF--
+<?php
+
+
+
+function some_function($param) {
+ echo("Callback called with parameters:\n");
+ var_export(func_get_args ());
+}
+
+TestVariables\fnCallback("some_function");
+
+
+
+--EXPECT--
+call callback
+Callback called with parameters:
+array (
+ 0 => 'param1',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 =>
+ array (
+ 0 => 'param5',
+ 1 => 3.14159265359,
+ 2 => 28032014,
+ 'key' => 'value',
+ ),
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 =>
+ array (
+ 0 => 'param5',
+ 1 => 3.14159265359,
+ 2 => 28032014,
+ 'key' => 'value',
+ ),
+ 5 =>
+ DateTime::__set_state(array(
+ 'date' => '2014-03-28 19:42:15',
+ 'timezone_type' => 3,
+ 'timezone' => 'Asia/Yekaterinburg',
+ )),
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+ 8 => 'param9',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+ 8 => 'param9',
+ 9 => 'param10',
+) \ No newline at end of file
diff --git a/tests/php/phpt/variables/015-calling-php-functions.phpt b/tests/php/phpt/variables/015-calling-php-functions.phpt
new file mode 100644
index 0000000..e9382b2
--- /dev/null
+++ b/tests/php/phpt/variables/015-calling-php-functions.phpt
@@ -0,0 +1,109 @@
+--TEST--
+calling-php-Callback-functions (lambda)
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--FILEEOF--
+<?php
+
+
+TestVariables\fnCallback( function($param) {
+ echo("Callback called with parameters:\n");
+ var_export(func_get_args ());
+});
+
+
+--EXPECT--
+call callback
+Callback called with parameters:
+array (
+ 0 => 'param1',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 =>
+ array (
+ 0 => 'param5',
+ 1 => 3.14159265359,
+ 2 => 28032014,
+ 'key' => 'value',
+ ),
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 =>
+ array (
+ 0 => 'param5',
+ 1 => 3.14159265359,
+ 2 => 28032014,
+ 'key' => 'value',
+ ),
+ 5 =>
+ DateTime::__set_state(array(
+ 'date' => '2014-03-28 19:42:15',
+ 'timezone_type' => 3,
+ 'timezone' => 'Asia/Yekaterinburg',
+ )),
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+ 8 => 'param9',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+ 8 => 'param9',
+ 9 => 'param10',
+) \ No newline at end of file
diff --git a/tests/php/phpt/variables/016-calling-php-functions.phpt b/tests/php/phpt/variables/016-calling-php-functions.phpt
new file mode 100644
index 0000000..46fda6e
--- /dev/null
+++ b/tests/php/phpt/variables/016-calling-php-functions.phpt
@@ -0,0 +1,113 @@
+--TEST--
+calling-php-Callback-functions (__invoke)
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--FILEEOF--
+<?php
+
+
+class CallableClass {
+ public function __invoke() {
+ echo("Callback called with parameters:\n");
+ var_export(func_get_args ());
+ }
+}
+
+TestVariables\fnCallback(new CallableClass());
+
+
+--EXPECT--
+call callback
+Callback called with parameters:
+array (
+ 0 => 'param1',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 =>
+ array (
+ 0 => 'param5',
+ 1 => 3.14159265359,
+ 2 => 28032014,
+ 'key' => 'value',
+ ),
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 =>
+ array (
+ 0 => 'param5',
+ 1 => 3.14159265359,
+ 2 => 28032014,
+ 'key' => 'value',
+ ),
+ 5 =>
+ DateTime::__set_state(array(
+ 'date' => '2014-03-28 19:42:15',
+ 'timezone_type' => 3,
+ 'timezone' => 'Asia/Yekaterinburg',
+ )),
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+ 8 => 'param9',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+ 8 => 'param9',
+ 9 => 'param10',
+) \ No newline at end of file
diff --git a/tests/php/phpt/variables/017-calling-php-functions.phpt b/tests/php/phpt/variables/017-calling-php-functions.phpt
new file mode 100644
index 0000000..630399a
--- /dev/null
+++ b/tests/php/phpt/variables/017-calling-php-functions.phpt
@@ -0,0 +1,115 @@
+--TEST--
+calling-php-Callback-functions (method of class)
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--FILEEOF--
+<?php
+
+
+class someClass {
+ function someMethod() {
+ echo("Callback called with parameters:\n");
+ var_export(func_get_args ());
+ }
+}
+
+$anObject = new someClass();
+$methodVariable = array($anObject, 'someMethod');
+TestVariables\fnCallback($methodVariable);
+
+
+--EXPECT--
+call callback
+Callback called with parameters:
+array (
+ 0 => 'param1',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 =>
+ array (
+ 0 => 'param5',
+ 1 => 3.14159265359,
+ 2 => 28032014,
+ 'key' => 'value',
+ ),
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 =>
+ array (
+ 0 => 'param5',
+ 1 => 3.14159265359,
+ 2 => 28032014,
+ 'key' => 'value',
+ ),
+ 5 =>
+ DateTime::__set_state(array(
+ 'date' => '2014-03-28 19:42:15',
+ 'timezone_type' => 3,
+ 'timezone' => 'Asia/Yekaterinburg',
+ )),
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+ 8 => 'param9',
+)Callback called with parameters:
+array (
+ 0 => 'param1',
+ 1 => 'param2',
+ 2 => 'param3',
+ 3 => 'param4',
+ 4 => 'param5',
+ 5 => 'param6',
+ 6 => 'param7',
+ 7 => 'param8',
+ 8 => 'param9',
+ 9 => 'param10',
+) \ No newline at end of file
diff --git a/tests/php/phpt/variables/018-calling-php-functions.phpt b/tests/php/phpt/variables/018-calling-php-functions.phpt
new file mode 100644
index 0000000..1b8bfeb
--- /dev/null
+++ b/tests/php/phpt/variables/018-calling-php-functions.phpt
@@ -0,0 +1,32 @@
+--TEST--
+calling-php-callable
+--DESCRIPTION--
+call callable object of class from user space
+call method of class from user space
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--FILEEOF--
+<?php
+
+
+class CallableClass {
+ public function __construct($a){ $this->a = $a;}
+ public function __invoke($b){ echo "CallableClass({$this->a})::__invoke($b)";}
+ private $a = "";
+}
+
+class usrspClass {
+ function __construct($a){ $this->a = $a;}
+ function someMethod($b) {echo "usrspClass({$this->a})::someMethod($b)";}
+ private $a = "";
+}
+
+
+TestVariables\fnFromUserSpace2();
+
+
+--EXPECT--
+2014-03-28 21:22:15
+2014-03-28 21:22:15
+usrspClass(Mount Meru)::someMethod(is in the Arctics)
+CallableClass(Arctics around mount Meru)::__invoke(is the birthplace of the Hyperboreans) \ No newline at end of file
diff --git a/tests/php/phpt/variables/readme b/tests/php/phpt/variables/readme
index 8162526..a47cb89 100644
--- a/tests/php/phpt/variables/readme
+++ b/tests/php/phpt/variables/readme
@@ -1 +1,5 @@
tests variables
+
+TODO: more tests for globals variables
+including separate test for $_GET, $_POST, $_COOKIE, $_FILES, $_SERVER, $_REQUEST and $_ENV (Php::GET, Php::POST, Php::COOKIE, Php::FILES, Php::SERVER, Php::REQUEST and Php::ENV) variables.
+