summaryrefslogtreecommitdiff
path: root/tests/cpp
diff options
context:
space:
mode:
authorvalmat <ufabiz@gmail.com>2014-03-28 20:18:15 +0600
committervalmat <ufabiz@gmail.com>2014-03-28 20:18:15 +0600
commit168eeabc6e52165a71a3130c5e0f26a7fd9382c9 (patch)
treebd1d5e47bb66310674048a31735f8e1b07510fc4 /tests/cpp
parent708a22fae15b13db871ca5ffc73004c70f0584fe (diff)
add new tests: Test call function
Diffstat (limited to 'tests/cpp')
-rw-r--r--tests/cpp/h/variables.h2
-rw-r--r--tests/cpp/include/variables/013-017-calling-php-functions.h87
-rw-r--r--tests/cpp/main.cpp4
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 &params)
+ {
+ 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");