#!/usr/bin/php
<?php
    
# Written by Mik Mifflin (UziMonkey), 2004
    # No license really at this point, but if you
    # use it, credit me and tell me about it.
    
include 'validate.php';

    function 
printbool($bool) {
        echo (
$bool "true" "false") . "\t";
    }

    function 
validateit ($desc,$var,$valid) {
        
# A useless loop I can break out of
        
do {
            echo 
"$desc($var)\t";
            
$result $valid->validate($var);
            
printbool($result);
            if (
$result == false)  break;
            
$result $valid->checkLimits($var);
            
printbool($result);
            if (
$result == false)  break;
            
$result $valid->translate($var);
            if (
$result === false) {
                echo 
"false";
            } else {
                echo 
"$result";
            }
        } while(
0);
        echo 
"\n";
    }

    echo 
"Integer type\n";
    
$validator = new IntegerValidator(0,100);
    
validateit("Valid number   ","50",$validator);
    
validateit("Invalid number ","g",$validator);
    
validateit("OOB number     ","200",$validator);
    
validateit("High bounds    ","100",$validator);
    
validateit("Low bounds     ","0",$validator);
    echo 
"\n";
    
    echo 
"Integer type with negative values\n";
    
$validator = new IntegerValidator(-100,0);
    
validateit("Valid number   ","-50",$validator);
    
validateit("Invalid number ","g",$validator);
    
validateit("OOB number     ","-200",$validator);
    
validateit("Low bounds     ","-100",$validator);
    
validateit("High bounds    ","0",$validator);
    echo 
"\n"

    echo 
"Username validator\n";
    
$validator = new UsernameValidator(5,7);
    
validateit("Valid username   ","usern",$validator);
    
validateit("Invalid username ","_usern",$validator);
    
validateit("Minimum chars    ","12345",$validator);
    
validateit("Maximum chars    ","1234567",$validator);
    
validateit("Not enough chars ","1234",$validator);
    
validateit("Too many chars   ","12345678",$validator);
    echo 
"\n";

    echo 
"Password type\n";
    
$validator = new PasswordValidator(5,10);
    
validateit("Valid password     ","password",$validator);
    
validateit("Minimum characters ","12345",$validator);
    
validateit("Maximum characters ","0123456789",$validator);
    
validateit("Not enough chars   ","12",$validator);
    
validateit("Too many chars     ","0123456789012",$validator);
    echo 
"\n";

    echo 
"Relative path type\n";
    
$validator = new RelativePathValidator("/tmp/phptest/");
    
validateit("Valid path    ","test1",$validator);
    
validateit("With ..       ","test/..",$validator);
    
validateit("Absolute      ","/tmp/o",$validator);
    
validateit("Invalid char  ","some/#",$validator);
    
validateit("Single link   ","test2",$validator);
    
validateit("Multi link    ","test3",$validator);
    
validateit("Invalid link  ","test4",$validator);
    
validateit("Links to ..   ","test5",$validator);
    echo 
"\n";
?>