summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorvalmat <ufabiz@gmail.com>2014-04-14 21:23:11 +0600
committervalmat <ufabiz@gmail.com>2014-04-14 21:23:11 +0600
commitea65bafff940dac23c52fc307b9a2e552b983102 (patch)
tree5a6c03c700125f06de81074774093620a4e9b2f1 /tests
parent8aa33ba24d56e1a631826bac47321a47ad0bb9e2 (diff)
Several tests on superglobals variables
Diffstat (limited to 'tests')
-rw-r--r--tests/cpp/h/variables.h10
-rw-r--r--tests/cpp/include/variables/023-cookie.h31
-rw-r--r--tests/cpp/include/variables/024-get-post.h38
-rw-r--r--tests/cpp/include/variables/025-post-raw1.h41
-rw-r--r--tests/cpp/include/variables/026-post-raw2.h76
-rw-r--r--tests/cpp/include/variables/027-env.h26
-rw-r--r--tests/cpp/include/variables/tpl.h21
-rw-r--r--tests/cpp/main.cpp5
-rw-r--r--tests/php/dbg.php10
-rw-r--r--tests/php/phpt/variables/023-cookie.phpt16
-rw-r--r--tests/php/phpt/variables/024-get-post.phpt26
-rw-r--r--tests/php/phpt/variables/025-post-raw1.phpt27
-rw-r--r--tests/php/phpt/variables/026-post-raw2.phpt38
-rw-r--r--tests/php/phpt/variables/027-env.phpt25
14 files changed, 365 insertions, 25 deletions
diff --git a/tests/cpp/h/variables.h b/tests/cpp/h/variables.h
index bdf0fca..8a074cd 100644
--- a/tests/cpp/h/variables.h
+++ b/tests/cpp/h/variables.h
@@ -22,11 +22,11 @@
#include "../include/variables/020-HashMember-2.h"
#include "../include/variables/021-HashMember-3.h"
#include "../include/variables/022-HashMember-4.h"
-//#include "../include/variables/.h"
-//#include "../include/variables/.h"
-//#include "../include/variables/.h"
-//#include "../include/variables/.h"
-//#include "../include/variables/.h"
+#include "../include/variables/023-cookie.h"
+#include "../include/variables/024-get-post.h"
+#include "../include/variables/025-post-raw1.h"
+#include "../include/variables/026-post-raw2.h"
+#include "../include/variables/027-env.h"
//#include "../include/variables/.h"
diff --git a/tests/cpp/include/variables/023-cookie.h b/tests/cpp/include/variables/023-cookie.h
new file mode 100644
index 0000000..6f74883
--- /dev/null
+++ b/tests/cpp/include/variables/023-cookie.h
@@ -0,0 +1,31 @@
+/**
+ *
+ * Test superglobal variables _COOKIE
+ * 023-cookie.phpt
+ *
+ */
+
+
+
+
+/**
+ * Set up namespace
+ */
+namespace TestVariables {
+
+
+ /*
+ * Test
+ */
+ void getCookie(void)
+ {
+ Php::out << "_COOKIE[peace] = " << Php::COOKIE["peace"] << std::endl;
+ Php::out << "_COOKIE[freedom] = " << Php::COOKIE["freedom"] << std::endl;
+ Php::out << "_COOKIE[empty] = " << Php::COOKIE["empty"] << std::endl;
+ }
+
+/**
+ * End of namespace
+ */
+}
+
diff --git a/tests/cpp/include/variables/024-get-post.h b/tests/cpp/include/variables/024-get-post.h
new file mode 100644
index 0000000..e615f0f
--- /dev/null
+++ b/tests/cpp/include/variables/024-get-post.h
@@ -0,0 +1,38 @@
+/**
+ *
+ * Test superglobal variables _GET & _POST
+ * 024-get-post.phpt
+ *
+ */
+
+
+
+
+/**
+ * Set up namespace
+ */
+namespace TestVariables {
+
+
+ /*
+ * Test
+ */
+ void get_post(void)
+ {
+ Php::out << "_GET[a] = " << Php::GET["a"] << std::endl;
+ Php::out << "_GET[b] = " << Php::GET["b"] << std::endl;
+ Php::out << "_GET[ar][elm1] = " << Php::GET["ar"]["elm1"] << std::endl;
+ Php::out << "_GET[ar][elm2] = " << Php::GET["ar"]["elm2"] << std::endl;
+
+ Php::out << "_POST[c] = " << Php::POST["c"] << std::endl;
+ Php::out << "_POST[d] = " << Php::POST["d"] << std::endl;
+ Php::out << "_POST[e] = " << Php::POST["e"] << std::endl;
+ Php::out << "_POST[e][0] = " << Php::POST["e"][0] << std::endl;
+ Php::out << "_POST[e][1] = " << Php::POST["e"][1] << std::endl;
+ }
+
+/**
+ * End of namespace
+ */
+}
+
diff --git a/tests/cpp/include/variables/025-post-raw1.h b/tests/cpp/include/variables/025-post-raw1.h
new file mode 100644
index 0000000..37c6ae1
--- /dev/null
+++ b/tests/cpp/include/variables/025-post-raw1.h
@@ -0,0 +1,41 @@
+/**
+ *
+ * Test superglobal variables _POST
+ * 025-post-raw1.phpt
+ *
+ */
+
+
+
+
+/**
+ * Set up namespace
+ */
+namespace TestVariables {
+ using namespace Php;
+
+
+ /*
+ * Test
+ */
+ void post_raw1(void)
+ {
+ out << "username => "<< POST["username"] << std::endl;
+ out << "text => "<< POST["text"] << std::endl;
+
+ /*
+ XXX TODO: conversion from ‘Php::Super’ to ‘Php::Value‘
+ Value v = POST;
+
+ out << "Array/Object contains " << v.size() << " items" << std::endl;
+ for (auto it=v.begin(), itend = v.end(); it != itend; ++it) {
+ out << "["<< it->first << "]="<< it->second << std::endl;
+ }
+ */
+ }
+
+/**
+ * End of namespace
+ */
+}
+
diff --git a/tests/cpp/include/variables/026-post-raw2.h b/tests/cpp/include/variables/026-post-raw2.h
new file mode 100644
index 0000000..d250dc8
--- /dev/null
+++ b/tests/cpp/include/variables/026-post-raw2.h
@@ -0,0 +1,76 @@
+/**
+ *
+ * Test superglobal variables _POST
+ * 026-post-raw2.phpt
+ *
+ */
+
+
+#include <iostream>
+#include <fstream>
+
+/**
+ * Set up namespace
+ */
+namespace TestVariables {
+ using namespace Php;
+
+
+ /*
+ * Test
+ */
+ void post_raw2(void)
+ {
+ out << "name1 : "<< FILES["flnm"]["name"][0] << std::endl;
+ out << "name2 : "<< FILES["flnm"]["name"][1] << std::endl;
+
+ out << "type1 : "<< FILES["flnm"]["type"][0] << std::endl;
+ out << "type2 : "<< FILES["flnm"]["type"][1] << std::endl;
+
+ out << "error1 : "<< FILES["flnm"]["error"][0] << std::endl;
+ out << "error2 : "<< FILES["flnm"]["error"][1] << std::endl;
+
+ out << "size1 : "<< FILES["flnm"]["size"][0] << std::endl;
+ out << "size2 : "<< FILES["flnm"]["size"][1] << std::endl;
+
+
+ int length0 = FILES["flnm"]["size"][0];
+ int length1 = FILES["flnm"]["size"][1];
+ char *buffer0, *buffer1;
+
+ std::ifstream file0, file1;
+ std::string filename0 = FILES["flnm"]["tmp_name"][0];
+ std::string filename1 = FILES["flnm"]["tmp_name"][1];
+
+ file0.open(filename0, std::ios::in | std::ios::binary);
+ file1.open(filename1, std::ios::in | std::ios::binary);
+
+ if(!file0.is_open() || !file1.is_open()) {
+ out << "Cannot open file." << std::endl;
+ return;
+ }
+
+ //allocate memory
+ buffer0 = new char[length0];
+ buffer1 = new char[length1];
+
+ //read data as a block to buffer
+ file0.read(buffer0, length0);
+ file1.read(buffer1, length1);
+ file0.close();
+ file1.close();
+
+ out << "content1 : ";
+ out.write(buffer0, length0);
+ out << std::endl;
+ out << "content2 : "<< buffer1 << std::endl;
+
+ delete[] buffer0;
+ delete[] buffer1;
+ }
+
+/**
+ * End of namespace
+ */
+}
+
diff --git a/tests/cpp/include/variables/027-env.h b/tests/cpp/include/variables/027-env.h
new file mode 100644
index 0000000..b8455b4
--- /dev/null
+++ b/tests/cpp/include/variables/027-env.h
@@ -0,0 +1,26 @@
+/**
+ *
+ * Test superglobal variables _ENV
+ * 027-env.phpt
+ *
+ */
+
+
+
+namespace TestVariables {
+
+
+ /*
+ * Test
+ */
+ void test_env(void)
+ {
+ Php::out << "HTTP_USER_AGENT => " << Php::SERVER["HTTP_USER_AGENT"] << std::endl;
+ Php::out << "ENVVAR1 => " << Php::SERVER["ENVVAR1"] << std::endl;
+ Php::out << "HTTP_REFERER => " << Php::SERVER["HTTP_REFERER"] << std::endl;
+ Php::out << "REQUEST_METHOD => " << Php::SERVER["REQUEST_METHOD"] << std::endl;
+ Php::out << "HTTP_HOST => " << Php::SERVER["HTTP_HOST"] << std::endl;
+ }
+
+}
+
diff --git a/tests/cpp/include/variables/tpl.h b/tests/cpp/include/variables/tpl.h
index 3c4ed7c..0df5892 100644
--- a/tests/cpp/include/variables/tpl.h
+++ b/tests/cpp/include/variables/tpl.h
@@ -1,7 +1,7 @@
/**
*
* Test variables
- * phptname.phpt
+ * phptname.phpt
*
*/
@@ -12,16 +12,15 @@
* Set up namespace
*/
namespace TestVariables {
-
-
- /*
- * Test
- */
- void fnname(Php::Parameters &params)
- {
-
-
- }
+
+ /*
+ * Test
+ */
+ void fnname(Php::Parameters &params)
+ {
+
+
+ }
/**
* End of namespace
diff --git a/tests/cpp/main.cpp b/tests/cpp/main.cpp
index f73a69a..37ba5ed 100644
--- a/tests/cpp/main.cpp
+++ b/tests/cpp/main.cpp
@@ -120,6 +120,11 @@ extern "C"
extension.add("TestVariables\\test_HashMember_2", TestVariables::test_HashMember_2);
extension.add("TestVariables\\test_HashMember_3", TestVariables::test_HashMember_3);
extension.add("TestVariables\\test_HashMember_4", TestVariables::test_HashMember_4);
+ extension.add("TestVariables\\getCookie", TestVariables::getCookie);
+ extension.add("TestVariables\\get_post", TestVariables::get_post);
+ extension.add("TestVariables\\post_raw1", TestVariables::post_raw1);
+ extension.add("TestVariables\\post_raw2", TestVariables::post_raw2);
+ extension.add("TestVariables\\test_env", TestVariables::test_env);
diff --git a/tests/php/dbg.php b/tests/php/dbg.php
index b12da13..e626ce0 100644
--- a/tests/php/dbg.php
+++ b/tests/php/dbg.php
@@ -11,15 +11,7 @@
-TestIniEntries\iniTest1();
-/*
-exit;
-ini_restore ( 'ini1' );
-ini_restore ( 'ini2' );
-ini_restore ( 'ini3' );
-TestIniEntries\iniTest1();
-*/
-//exit;
+
echo "\x1b[1;31m";
(new ReflectionExtension('extension_for_tests') )->info();
echo "\x1b[0m";
diff --git a/tests/php/phpt/variables/023-cookie.phpt b/tests/php/phpt/variables/023-cookie.phpt
new file mode 100644
index 0000000..0648188
--- /dev/null
+++ b/tests/php/phpt/variables/023-cookie.phpt
@@ -0,0 +1,16 @@
+--TEST--
+test cookie
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--COOKIE--
+peace=toTheWorld;freedom=toThePeople
+--FILEEOF--
+<?php
+
+
+TestVariables\getCookie();
+
+--EXPECT--
+_COOKIE[peace] = toTheWorld
+_COOKIE[freedom] = toThePeople
+_COOKIE[empty] = \ No newline at end of file
diff --git a/tests/php/phpt/variables/024-get-post.phpt b/tests/php/phpt/variables/024-get-post.phpt
new file mode 100644
index 0000000..9ac1243
--- /dev/null
+++ b/tests/php/phpt/variables/024-get-post.phpt
@@ -0,0 +1,26 @@
+--TEST--
+test get and post
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--GET--
+a=<b>test</b>&b=http://phpcpp.com&ar[elm1]=1234&ar[elm2]=0660&a=0234
+--POST--
+c=<p>string</p>&d=12345.7&e[]=e1&e[]=e2
+--FILEEOF--
+<?php
+
+
+TestVariables\get_post();
+
+--EXPECTF--
+_GET[a] = 0234
+_GET[b] = http://phpcpp.com
+_GET[ar][elm1] = 1234
+_GET[ar][elm2] = 0660
+_POST[c] = <p>string</p>
+_POST[d] = 12345.7
+
+Notice: Array to string conversion in %s/024-get-post.php on line %d
+_POST[e] = Array
+_POST[e][0] = e1
+_POST[e][1] = e2 \ No newline at end of file
diff --git a/tests/php/phpt/variables/025-post-raw1.phpt b/tests/php/phpt/variables/025-post-raw1.phpt
new file mode 100644
index 0000000..76fed0f
--- /dev/null
+++ b/tests/php/phpt/variables/025-post-raw1.phpt
@@ -0,0 +1,27 @@
+--TEST--
+test post raw #1
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--POST_RAW--
+Content-type: multipart/form-data, boundary=AaB03x
+
+--AaB03x
+content-disposition: form-data; name="username"
+
+valmat
+--AaB03x
+content-disposition: form-data; name="text"
+
+Hellow World!
+--AaB03x
+--FILEEOF--
+<?php
+
+
+TestVariables\post_raw1();
+
+//foreach($_POST as $k => $v) {echo "\n$k => $v";}
+
+--EXPECTF--
+username => valmat
+text => Hellow World! \ No newline at end of file
diff --git a/tests/php/phpt/variables/026-post-raw2.phpt b/tests/php/phpt/variables/026-post-raw2.phpt
new file mode 100644
index 0000000..4bee44c
--- /dev/null
+++ b/tests/php/phpt/variables/026-post-raw2.phpt
@@ -0,0 +1,38 @@
+--TEST--
+Post files
+--DESCRIPTION--
+Simulates the file upload method post
+test post raw #2
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--POST_RAW--
+Content-type: multipart/form-data, boundary=AaB03x
+
+--AaB03x
+content-disposition: form-data; name="flnm[]"; filename="file1.txt"
+Content-Type: text/plain
+
+abcdef123456789
+--AaB03x
+content-disposition: form-data; name="flnm[]"; filename="file2.txt"
+Content-Type: text/plain
+
+«£¥§©®°±¶Я⅓⅘⅞Ⅻↆ❄❅❆⚑⚐⌛⌚〰»
+--AaB03x
+--FILEEOF--
+<?php
+
+
+TestVariables\post_raw2();
+
+--EXPECTF--
+name1 : file1.txt
+name2 : file2.txt
+type1 : text/plain
+type2 : text/plain
+error1 : 0
+error2 : 0
+size1 : 15
+size2 : 61
+content1 : abcdef123456789
+content2 : «£¥§©®°±¶Я⅓⅘⅞Ⅻↆ❄❅❆⚑⚐⌛⌚〰» \ No newline at end of file
diff --git a/tests/php/phpt/variables/027-env.phpt b/tests/php/phpt/variables/027-env.phpt
new file mode 100644
index 0000000..4e84cfe
--- /dev/null
+++ b/tests/php/phpt/variables/027-env.phpt
@@ -0,0 +1,25 @@
+--TEST--
+test superglobal _ENV
+--SKIPIF--
+<?php if (!extension_loaded("extension_for_tests")) print "skip"; ?>
+--ENV--
+return <<<END
+ENVVAR1=ENVVAL1
+HTTP_REFERER=http://spb.1gs.ru/
+HTTP_USER_AGENT=Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0
+HTTP_COOKIE=usr=1cfa6e9905; pc=0; PHPSESSID=4d08j9phpe1c6; vmode=0
+HTTP_HOST=phpcpp.com
+END;
+--FILEEOF--
+<?php
+
+
+TestVariables\test_env();
+//var_export($_SERVER); echo PHP_EOL, PHP_EOL, PHP_EOL;
+
+--EXPECTF--
+HTTP_USER_AGENT => Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0
+ENVVAR1 => ENVVAL1
+HTTP_REFERER => http://spb.1gs.ru/
+REQUEST_METHOD => GET
+HTTP_HOST => phpcpp.com