From ea65bafff940dac23c52fc307b9a2e552b983102 Mon Sep 17 00:00:00 2001 From: valmat Date: Mon, 14 Apr 2014 21:23:11 +0600 Subject: Several tests on superglobals variables --- tests/cpp/h/variables.h | 10 ++-- tests/cpp/include/variables/023-cookie.h | 31 ++++++++++++ tests/cpp/include/variables/024-get-post.h | 38 +++++++++++++++ tests/cpp/include/variables/025-post-raw1.h | 41 ++++++++++++++++ tests/cpp/include/variables/026-post-raw2.h | 76 +++++++++++++++++++++++++++++ tests/cpp/include/variables/027-env.h | 26 ++++++++++ tests/cpp/include/variables/tpl.h | 21 ++++---- tests/cpp/main.cpp | 5 ++ tests/php/dbg.php | 10 +--- tests/php/phpt/variables/023-cookie.phpt | 16 ++++++ tests/php/phpt/variables/024-get-post.phpt | 26 ++++++++++ tests/php/phpt/variables/025-post-raw1.phpt | 27 ++++++++++ tests/php/phpt/variables/026-post-raw2.phpt | 38 +++++++++++++++ tests/php/phpt/variables/027-env.phpt | 25 ++++++++++ 14 files changed, 365 insertions(+), 25 deletions(-) create mode 100644 tests/cpp/include/variables/023-cookie.h create mode 100644 tests/cpp/include/variables/024-get-post.h create mode 100644 tests/cpp/include/variables/025-post-raw1.h create mode 100644 tests/cpp/include/variables/026-post-raw2.h create mode 100644 tests/cpp/include/variables/027-env.h create mode 100644 tests/php/phpt/variables/023-cookie.phpt create mode 100644 tests/php/phpt/variables/024-get-post.phpt create mode 100644 tests/php/phpt/variables/025-post-raw1.phpt create mode 100644 tests/php/phpt/variables/026-post-raw2.phpt create mode 100644 tests/php/phpt/variables/027-env.phpt (limited to 'tests') 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 +#include + +/** + * 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 ¶ms) - { - - - } + + /* + * Test + */ + void fnname(Php::Parameters ¶ms) + { + + + } /** * 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-- + +--COOKIE-- +peace=toTheWorld;freedom=toThePeople +--FILEEOF-- + +--GET-- +a=test&b=http://phpcpp.com&ar[elm1]=1234&ar[elm2]=0660&a=0234 +--POST-- +c=

string

&d=12345.7&e[]=e1&e[]=e2 +--FILEEOF-- +string

+_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-- + +--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-- + $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-- + +--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-- + +--ENV-- +return << 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 -- cgit v1.2.3