Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
--TEST--
2
testdate.phpt: Unit tests for 'Validate.php'
3
--FILE--
4
<?php
5
// $Id: testdate.phpt 236794 2007-06-01 07:44:55Z amir $
6
require_once 'Validate.php';
7
 
8
// Validate test script
9
$noYes = array('NO', 'YES');
10
require_once 'Date.php';
11
 
12
echo "Test Validate_Date\n";
13
echo "******************\n";
14
 
15
$dates = array(
16
    array('121202', 'format'=>'%d%m%y'), // OK
17
    array('21202', 'format'=>'%d%m%y'), // NOK
18
    array('02122', 'format'=>'%y%m%d'), // NOK
19
    array('02229', 'format'=>'%y%d%m'), // NOK
20
    array('121402', 'format'=>'%d%m%y'), // NOK
21
    array('12120001', 'format'=>'%d%m%Y'), // OK
22
 
23
    /* Ambiguous date >> false
24
        * They should be still valid. Maybe by changing the loop
25
        * 1st check for the Y (4digits), and then m (2digits)
26
        * if you got the idea ;)
27
        */
28
    array('220001', 'format'=>'%j%n%Y'), // NOK
29
    array('2299', 'format'=>'%j%n%y'), // NOK
30
    array('2120001', 'format'=>'%j%m%Y'), // NOK
31
    /* End */
32
 
33
    array('12121999', 'format'=>'%d%m%Y', 'min'=>array('01','01','1995')), // OK
34
    array('12121996', 'format'=>'%d%m%Y', 'min'=>array('01','01','1995'),
35
                                          'max'=>array('01','01','1997')), // OK
36
    array('29022002', 'format'=>'%d%m%Y'), // NOK
37
    array('12.12.1902', 'format'=>'%d.%m.%Y'), // OK
38
    array('12/12/1902', 'format'=>'%d/%m/%Y'), // OK
39
    array('12/12/1902', 'format'=>'%d/%m/%Y'), // OK
40
    array('12:12:1902', 'format'=>'%d:%m:%Y'), // OK
41
    array('12', 'format'=>'%g'), // OK
42
    array('12', 'format'=>'%G'), // OK
43
    array('13:00', 'format'=>'%g:%i'), // NOK
44
    array('24:59', 'format'=>'%G:%i'), // OK
45
    array('25:00', 'format'=>'%G:%i'), // NOK
46
    array('25:00', 'format'=>'%G:%i:%s'), // NOK
47
    array('121902', 'format'=>'%m%Y'), // OK
48
    array('13120001', 'format'=>'%d%m%Y') // OK
49
);
50
 
51
$dateObjects = array(
52
    array('11111996', 'format'=>'%d%m%Y', 'min' => new Date('19950101')), // OK
53
    array('12121996', 'format'=>'%d%m%Y', 'min' => new Date('19970101')), // NOK
54
    array('10101994', 'format'=>'%d%m%Y', 'max' => new Date('2005-04-27 06:24:05')), // OK
55
    array('11111994', 'format'=>'%d%m%Y', 'max' => new Date('19920101')), // NOK
56
    array('12121996', 'format'=>'%d%m%Y',
57
                      'min' => new Date('19950101'), 'max' => new Date('2005-04-27 06:24:05')) // OK
58
);
59
 
60
echo "\nTest dates\n";
61
foreach ($dates as $data){
62
    $date = array_shift($data);
63
    echo "{$date} (";
64
    foreach ($data as $key=>$val) {
65
        if (is_array($val)) {
66
            echo "{$key}=>[ ";
67
            foreach($val as $elt) {
68
                echo "{$elt} ";
69
            }
70
            echo "] ";
71
        } else {
72
            echo "{$key}=>{$val} ";
73
        }
74
    }
75
    echo "): ".$noYes[Validate::date($date, $data)]."\n";
76
}
77
 
78
echo "\nTest dates with min max object\n";
79
foreach ($dateObjects as $data){
80
    $date = array_shift($data);
81
    echo "{$date} (";
82
    foreach ($data as $key=>$val) {
83
        if (($key == 'min') or ($key == 'max')) {
84
            echo "{$key}=>".$val->getDate()." ";
85
        } else {
86
            echo "{$key}=>{$val} ";
87
        }
88
    }
89
    echo "): ".$noYes[Validate::date($date, $data)]."\n";
90
}
91
?>
92
--EXPECT--
93
Test Validate_Date
94
******************
95
 
96
Test dates
97
121202 (format=>%d%m%y ): YES
98
21202 (format=>%d%m%y ): NO
99
02122 (format=>%y%m%d ): NO
100
02229 (format=>%y%d%m ): NO
101
121402 (format=>%d%m%y ): NO
102
12120001 (format=>%d%m%Y ): YES
103
220001 (format=>%j%n%Y ): NO
104
2299 (format=>%j%n%y ): NO
105
2120001 (format=>%j%m%Y ): NO
106
12121999 (format=>%d%m%Y min=>[ 01 01 1995 ] ): YES
107
12121996 (format=>%d%m%Y min=>[ 01 01 1995 ] max=>[ 01 01 1997 ] ): YES
108
29022002 (format=>%d%m%Y ): NO
109
12.12.1902 (format=>%d.%m.%Y ): YES
110
12/12/1902 (format=>%d/%m/%Y ): YES
111
12/12/1902 (format=>%d/%m/%Y ): YES
112
12:12:1902 (format=>%d:%m:%Y ): YES
113
12 (format=>%g ): YES
114
12 (format=>%G ): YES
115
13:00 (format=>%g:%i ): NO
116
24:59 (format=>%G:%i ): YES
117
25:00 (format=>%G:%i ): NO
118
25:00 (format=>%G:%i:%s ): NO
119
121902 (format=>%m%Y ): YES
120
13120001 (format=>%d%m%Y ): YES
121
 
122
Test dates with min max object
123
11111996 (format=>%d%m%Y min=>1995-01-01 00:00:00 ): YES
124
12121996 (format=>%d%m%Y min=>1997-01-01 00:00:00 ): NO
125
10101994 (format=>%d%m%Y max=>2005-04-27 06:24:05 ): YES
126
11111994 (format=>%d%m%Y max=>1992-01-01 00:00:00 ): NO
127
12121996 (format=>%d%m%Y min=>1995-01-01 00:00:00 max=>2005-04-27 06:24:05 ): YES