diff options
author | valmat <ufabiz@gmail.com> | 2014-03-28 20:18:15 +0600 |
---|---|---|
committer | valmat <ufabiz@gmail.com> | 2014-03-28 20:18:15 +0600 |
commit | 168eeabc6e52165a71a3130c5e0f26a7fd9382c9 (patch) | |
tree | bd1d5e47bb66310674048a31735f8e1b07510fc4 /tests/cpp | |
parent | 708a22fae15b13db871ca5ffc73004c70f0584fe (diff) |
add new tests: Test call function
Diffstat (limited to 'tests/cpp')
-rw-r--r-- | tests/cpp/h/variables.h | 2 | ||||
-rw-r--r-- | tests/cpp/include/variables/013-017-calling-php-functions.h | 87 | ||||
-rw-r--r-- | tests/cpp/main.cpp | 4 |
3 files changed, 92 insertions, 1 deletions
diff --git a/tests/cpp/h/variables.h b/tests/cpp/h/variables.h index e884481..df0d923 100644 --- a/tests/cpp/h/variables.h +++ b/tests/cpp/h/variables.h @@ -17,7 +17,7 @@ #include "../include/variables/008-value-arrays.h" #include "../include/variables/009-010-value-object.h" #include "../include/variables/011-012-value-casting-operators.h" -//#include "../include/variables/.h" +#include "../include/variables/013-017-calling-php-functions.h" //#include "../include/variables/.h" //#include "../include/variables/.h" diff --git a/tests/cpp/include/variables/013-017-calling-php-functions.h b/tests/cpp/include/variables/013-017-calling-php-functions.h new file mode 100644 index 0000000..94367e0 --- /dev/null +++ b/tests/cpp/include/variables/013-017-calling-php-functions.h @@ -0,0 +1,87 @@ +/** + * + * Test call function + * 013-calling-php-functions.phpt + * ... + * 017-calling-php-functions.phpt + * + */ + + +/** + * Set up namespace + */ +namespace TestVariables { + + + /* + * Test call function from user space + */ + void fnFromUserSpace(void) + { + + + Php::out << "fnFromUserSpace" << std::endl; + + Php::Value param5; + param5.set(0, "param5"); + param5.set(1, 3.14159265359); + param5.set(2, 28032014); + param5.set("key", "value"); + + auto timeZone = Php::Object("DateTimeZone", "Asia/Yekaterinburg"); + Php::Value param6 = Php::Object("DateTime", "2014-03-28 19:42:15", timeZone); + + // call a function from user space + Php::call("some_function", "param1"); + Php::call("some_function", "param1", "param2"); + Php::call("some_function", "param1", "param2", "param3"); + Php::call("some_function", "param1", "param2", "param3", "param4"); + Php::call("some_function", "param1", "param2", "param3", "param4", param5); + Php::call("some_function", "param1", "param2", "param3", "param4", param5, param6); + Php::call("some_function", "param1", "param2", "param3", "param4", "param5", "param6", "param7"); + Php::call("some_function", "param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8"); + Php::call("some_function", "param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8", "param9"); + Php::call("some_function", "param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8", "param9", "param10"); + + } + + /* + * Test call callback + */ + void fnCallback(Php::Parameters ¶ms) + { + Php::out << "call callback" << std::endl; + + Php::Value callback = params[0]; + + + Php::Value param5; + param5.set(0, "param5"); + param5.set(1, 3.14159265359); + param5.set(2, 28032014); + param5.set("key", "value"); + + auto timeZone = Php::Object("DateTimeZone", "Asia/Yekaterinburg"); + Php::Value param6 = Php::Object("DateTime", "2014-03-28 19:42:15", timeZone); + + // call a function from user space + callback("param1"); + callback("param1", "param2"); + callback("param1", "param2", "param3"); + callback("param1", "param2", "param3", "param4"); + callback("param1", "param2", "param3", "param4", param5); + callback("param1", "param2", "param3", "param4", param5, param6); + callback("param1", "param2", "param3", "param4", "param5", "param6", "param7"); + callback("param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8"); + callback("param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8", "param9"); + callback("param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8", "param9", "param10"); + + } + + +/** + * End of namespace + */ +} + diff --git a/tests/cpp/main.cpp b/tests/cpp/main.cpp index c1e33b1..4db7b9c 100644 --- a/tests/cpp/main.cpp +++ b/tests/cpp/main.cpp @@ -102,6 +102,10 @@ extern "C" extension.add("TestVariables\\value_arrays", TestVariables::value_arrays); extension.add("TestVariables\\value_object1", TestVariables::value_object1); extension.add("TestVariables\\value_object2", TestVariables::value_object2); + extension.add("TestVariables\\fnFromUserSpace", TestVariables::fnFromUserSpace); + extension.add("TestVariables\\fnCallback", TestVariables::fnCallback); + + // A sample class, with methods to cast objects to scalars Php::Class<TestVariables::Obj2Scalar> cObj2Scalar("TestVariables\\Obj2Scalar"); |