Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
--TEST--
2
email.phpt: Unit tests for
3
--FILE--
4
<?php
5
// $Id: email.phpt 276490 2009-02-26 09:32:16Z amir $
6
// Validate test script
7
$noYes = array('NO', 'YES');
8
require 'Validate.php';
9
 
10
echo "Test Validate_Email\n";
11
 
12
$emails = array(
13
        // Try dns lookup
14
        array('pear-general@lists.php.net', true), // OK
15
        array('example@fluffffffrefrffrfrfrfrfrfr.is', false), // OK
16
        // with out the dns lookup
17
        'example@fluffffffrefrffrfrfrfrfrfr.is', // OK
18
 
19
        array('davidc@php.net', array('fullTLDValidation' => true, 'VALIDATE_GTLD_EMAILS' => true)),
20
        array('example (though bad)@example.com', array('use_rfc822' => true)), // OK
21
        'bugme@not./com', // OK
22
 
23
        // Some none english chars, those should fail until we fix the IDN stuff
24
        'hæjjæ@homms.com', // NOK
25
        'þæöð@example.com', // NOK
26
        'postmaster@tüv.de', // NOK
27
 
28
        // Test for various ways with _
29
        'mark_@example.com', // OK
30
        '_mark@example.com', // OK
31
        'mark_foo@example.com', // OK
32
 
33
        // Test for various ways with -
34
        'mark-@example.com', // OK
35
        '-mark@example.com', // OK
36
        'mark-foo@example.com', // OK
37
 
38
        // Test for various ways with .
39
        'mark.@example.com', // NOK
40
        '.mark@example.com', // NOK
41
        'mark.foo@example.com', // OK
42
 
43
        // Test for various ways with ,
44
        'mark,@example.com', // NOK
45
        ',mark@example.com', // NOK
46
        'mark,foo@example.com', // NOK
47
 
48
        // Test for various ways with :
49
        'mark:@example.com', // NOK
50
        ':mark@example.com', // NOK
51
        'mark:foo@example.com', // NOK
52
 
53
        // Test for various ways with ;
54
        'mark;@example.com', // NOK
55
        ';mark@example.com', // NOK
56
        'mark;foo@example.com', // NOK
57
 
58
        // Test for various ways with |
59
        'mark|@example.com', // OK
60
        '|mark@example.com', // OK
61
        'mark|foo@example.com', // OK
62
 
63
        // Test for various ways with double @
64
        'mark@home@example.com', // NOK
65
        'mark@example.home@com', // NOK
66
        'mark@example.com@home', // NOK
67
 
68
        // Killers ' tests
69
        'ha"ho@example.com', // NOK
70
        '<ha la la>blah</ha>@example.com', // NOK
71
        '<hablahha>@example.com', // NOK
72
        '"<ha la la>blah</ha>"@example.com', // OK
73
        '" "@example.com', // NOK
74
        '@example.com', // NOK
75
 
76
        // Minus ' tests (#5804)
77
        'minus@example-minus.com', // OK
78
        'minus@example.co-m', // OK
79
        'mi-nus@example-minus.co-m', // OK
80
        'minus@example-.com', // NOK
81
        'minus@-example.com', // NOK
82
        'minus@-.com', // NOK
83
        'minus@example.-com', // NOK
84
        'minus@-example.com-', // NOK
85
 
86
        // IP domain
87
        'ip@127.0.0.1', // OK
88
        '"the ip"@[127.0.0.1]', // OK
89
        'ip@127.0.333.1', // NOK
90
        'ip@[277.0.0.1]', // NOK
91
        'ip@[127.0.0.1', // NOK
92
        'ip@127.0.0.1]' // NOK
93
    );
94
 
95
list($version) = explode(".", phpversion(), 2);
96
foreach ($emails as $email) {
97
    if (is_array($email)) {
98
        echo "{$email[0]}:";
99
        if (!is_array($email[1])) {
100
            echo " with". ($email[1] ? '' : 'out') . ' domain check :';
101
        }
102
        echo ' ' . $noYes[Validate::email($email[0], $email[1])]."\n";
103
    } else {
104
        echo "{$email}: ";
105
        if ((int)$version > 4) {
106
            try {
107
                echo $noYes[Validate::email($email)]."\n";
108
            } catch (Exception $e) {
109
                echo $e->getMessage()."\n";
110
            }
111
        } else {
112
            echo $noYes[Validate::email($email)]."\n";
113
        }
114
    }
115
}
116
?>
117
--EXPECT--
118
Test Validate_Email
119
pear-general@lists.php.net: with domain check : YES
120
example@fluffffffrefrffrfrfrfrfrfr.is: without domain check : YES
121
example@fluffffffrefrffrfrfrfrfrfr.is: YES
122
davidc@php.net: YES
123
example (though bad)@example.com: YES
124
bugme@not./com: YES
125
hæjjæ@homms.com: NO
126
þæöð@example.com: NO
127
postmaster@tüv.de: NO
128
mark_@example.com: YES
129
_mark@example.com: YES
130
mark_foo@example.com: YES
131
mark-@example.com: YES
132
-mark@example.com: YES
133
mark-foo@example.com: YES
134
mark.@example.com: NO
135
.mark@example.com: NO
136
mark.foo@example.com: YES
137
mark,@example.com: NO
138
,mark@example.com: NO
139
mark,foo@example.com: NO
140
mark:@example.com: NO
141
:mark@example.com: NO
142
mark:foo@example.com: NO
143
mark;@example.com: NO
144
;mark@example.com: NO
145
mark;foo@example.com: NO
146
mark|@example.com: YES
147
|mark@example.com: YES
148
mark|foo@example.com: YES
149
mark@home@example.com: NO
150
mark@example.home@com: NO
151
mark@example.com@home: NO
152
ha"ho@example.com: NO
153
<ha la la>blah</ha>@example.com: NO
154
<hablahha>@example.com: NO
155
"<ha la la>blah</ha>"@example.com: YES
156
" "@example.com: NO
157
@example.com: NO
158
minus@example-minus.com: YES
159
minus@example.co-m: YES
160
mi-nus@example-minus.co-m: YES
161
minus@example-.com: NO
162
minus@-example.com: NO
163
minus@-.com: NO
164
minus@example.-com: NO
165
minus@-example.com-: NO
166
ip@127.0.0.1: YES
167
"the ip"@[127.0.0.1]: YES
168
ip@127.0.333.1: NO
169
ip@[277.0.0.1]: NO
170
ip@[127.0.0.1: NO
171
ip@127.0.0.1]: NO