Login   Register  
PHP Classes
elePHPant
Icontem

File: post_test.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of SaphirAngel  >  Input validation  >  post_test.php  >  Download  
File: post_test.php
Role: Unit test script
Content type: text/plain
Description: Unit test script
Class: Input validation
Validate request values of different types
Author: By
Last change:
Date: 2 years ago
Size: 5,056 bytes
 

Contents

Class file image Download
<?php
/**
 * Created by SaphirAngel
 * User: SaphirAngel
 */
include 'Request.php';


/*
********
* FLAG *
********
NOT_EMPTY       ok
NOT_NULL        ok
CHECK           ok
NUMERIC         ok


*****************
* SECURITY FLAG *
*****************
HTML_SECURE     ok

////// CHECK FLAG       ok

**************
* CHECK MODE *
**************
i   integer             ok
ip  positive integer    ok
in  negative integer    ok
f   float               ok
fp  positive float      ok
fn  negative float      ok
s   string              ok
c   character           ok
b   boolean             ok
m   mail                ok
d   date                ok


***********************
* ADVANCED CHECK MODE *
***********************
ir   integer_range => array(min, max)   nok
fr   float_range => array(min, max)     nok
sr   string_regex => '/regex/'          nok

////// get_type | is_type METHOD      nok

*********
* TYPES *
*********
integer     nok
float       nok
string      npk
boolean     nok
character   nok

*/

// For test
$_POST['titre'] = '<script type="text/javascript">alert("ok");</script><br />Salut<p>ok</p>';
$_POST['x'] = 'test';
$_POST['x_empty'] = '';
$_POST['ND'] = "2";
$_POST['age'] = "50";
$_POST['hidden'] = "false";
$_POST['test'] = "ok";
$_POST['contenu'] = "del";
$_POST['password'] = "b";
$_POST['date'] = "2012/06/12$2013/07/12";

$post = new REQUEST('POST''default');
$get = new REQUEST('GET');
$request = new REQUEST('ALL');

/***NORMAL FLAG***/

echo 'Securisation HTML';

$post->shield_off();

echo 
'<br />Valeur inexistante';
$userDataTest_1 $post(['x''y'], NOT_EMPTY NOT_NULL)->isValid();
if (!
$userDataTest_1var_dump($post->get_errors_list());
else 
var_dump($userDataTest_1);

echo 
'<br />Donnée vide';
$userDataTest_2 $post(['x_empty'], NOT_EMPTY)->isValid();
if (!
$userDataTest_2var_dump($post->get_errors_list());
else 
var_dump($userDataTest_2);

echo 
'<br />Valeur existante';
$userDataTest_3 $post(['x'], NOT_EMPTY)->isValid();
if (!
$userDataTest_3var_dump($post->get_errors_list());
else 
var_dump($userDataTest_3);

echo 
'<br />Valeur numérique';
$userDataNumeric $post(['ND''age'], NUMERIC)->isValid();
if (!
$userDataNumericvar_dump($post->get_errors_list());
else 
var_dump($userDataNumeric);

// Default flag
echo '<br />Valeur avec flag par défaut';
$userDataTest_default $post(['ND''age''test'])->isValid();
if (!
$userDataTest_defaultvar_dump($post->get_errors_list());
else 
var_dump($userDataTest_default);

// CHECK FLAG
echo '<br />Check integer ok';
$userDataTest_4 $post('ND'CHECK'i')->isValid();
if (!
$userDataTest_4var_dump($post->get_errors_list());
else 
var_dump($userDataTest_4);

echo 
'<br />check positive integer avec echec';
$userDataTest_5 $post(['ND''age'], CHECK'pi')->isValid();
if (!
$userDataTest_5var_dump($post->get_errors_list());
else 
var_dump($userDataTest_5);

echo 
'<br />check valeur booléenne';
$hidden $post('hidden'CHECK'b')->isValid();
if (!
$hiddenvar_dump($post->get_errors_list());
else 
var_dump($hidden);

echo 
'<br />check simulation post ajout news basique (echec car contenu vide)';
$dataNews $post(['ND''titre''contenu'],
    
NOT_EMPTY CHECK,
    [
'pi''s''s'])->isValid();
if (!
$dataNewsvar_dump($post->get_errors_list());
else 
var_dump($dataNews);

echo 
'<br />Check avancée';

$post->shield_on(HTML_SECURE, ['titre''contenu']);

$post->shield_on(HTML_SECURE SQL_SECURE);
try {
    
$actionAllowed = ['list''update''add''del'];
    if (
$post(['ND''age''titre''contenu''password'], DEFAULT_FLAG CHECK, ['pi''pi''s''s''s'])->isValid()) {


        
$ND_AGE  $post(['ND''age'])->check(['i_range' => [060]], 5);
        
$titre   $post('titre')->validate(['size' => [5255]]);
        
$contenu $post['contenu'];

        
$action $post('contenu')->check(['in' => $actionAllowed], 'list');

        echo 
var_dump($ND_AGE);
        echo 
':'.$titre;
        echo 
'<br />contenu : '.$action;

    } else {
        
var_dump($post->get_errors_list());
    }

} catch (
PersonalException $e) {
    echo 
$e->getShortMessage().' : '.$e->getMessage();
}


try {
    
$date $post('date')->validate(['date_interval' => '\$']);
    
var_dump($date);

    
/*



    $news_id = $post('ND')->validate('sql_exist' => ['conf1', 'table', 'keyField', 'more']]);

    $login = $post('login')->validate(sql_exist' => ['conf1', 'users', 'login', 'activ = 1']);

    $paiement = $post('paiement')->validate('json_decode');

    json_decode

    //NEXT
    $date = $post('date')->validate(['date_interval' => ['-']], ['date_format' => 'Y/m/d 00:00:00',
                                                                 'date_format' => 'Y/m/d 23:59:59']);

    //$date = $post('date')->format(['date_format' => ['yyyy-mm-dd']]);
    //$date = $post('date')->format(['date_format' => 'yyyy-mm-dd']);

    //$prix = $post('prix')->format(['f_format' => 4]);
    //$prix = $post('prix')->check(['f_range' => [0, 60]], 4, ['f_format' => 4]);
    */
} catch(PersonalException $exp) {
    echo 
'problem';
}


?>