1 | <?php |
---|
2 | /******************* |
---|
3 | Unit Test |
---|
4 | Type: phpmailer class |
---|
5 | ********************/ |
---|
6 | |
---|
7 | $INCLUDE_DIR = "../"; |
---|
8 | |
---|
9 | require("phpunit.php"); |
---|
10 | require($INCLUDE_DIR . "class.phpmailer.php"); |
---|
11 | error_reporting(E_ALL); |
---|
12 | |
---|
13 | /** |
---|
14 | * Performs authentication tests |
---|
15 | */ |
---|
16 | class phpmailerTest extends TestCase |
---|
17 | { |
---|
18 | /** |
---|
19 | * Holds the default phpmailer instance. |
---|
20 | * @private |
---|
21 | * @type object |
---|
22 | */ |
---|
23 | var $Mail = false; |
---|
24 | |
---|
25 | /** |
---|
26 | * Holds the SMTP mail host. |
---|
27 | * @public |
---|
28 | * @type string |
---|
29 | */ |
---|
30 | var $Host = ""; |
---|
31 | |
---|
32 | /** |
---|
33 | * Holds the change log. |
---|
34 | * @private |
---|
35 | * @type string array |
---|
36 | */ |
---|
37 | var $ChangeLog = array(); |
---|
38 | |
---|
39 | /** |
---|
40 | * Holds the note log. |
---|
41 | * @private |
---|
42 | * @type string array |
---|
43 | */ |
---|
44 | var $NoteLog = array(); |
---|
45 | |
---|
46 | /** |
---|
47 | * Class constuctor. |
---|
48 | */ |
---|
49 | function phpmailerTest($name) { |
---|
50 | /* must define this constructor */ |
---|
51 | $this->TestCase( $name ); |
---|
52 | } |
---|
53 | |
---|
54 | /** |
---|
55 | * Run before each test is started. |
---|
56 | */ |
---|
57 | function setUp() { |
---|
58 | global $global_vars; |
---|
59 | global $INCLUDE_DIR; |
---|
60 | |
---|
61 | $this->Mail = new PHPMailer(); |
---|
62 | |
---|
63 | $this->Mail->Priority = 3; |
---|
64 | $this->Mail->Encoding = "8bit"; |
---|
65 | $this->Mail->CharSet = "iso-8859-1"; |
---|
66 | $this->Mail->From = "unit_test@phpmailer.sf.net"; |
---|
67 | $this->Mail->FromName = "Unit Tester"; |
---|
68 | $this->Mail->Sender = ""; |
---|
69 | $this->Mail->Subject = "Unit Test"; |
---|
70 | $this->Mail->Body = ""; |
---|
71 | $this->Mail->AltBody = ""; |
---|
72 | $this->Mail->WordWrap = 0; |
---|
73 | $this->Mail->Host = $global_vars["mail_host"]; |
---|
74 | $this->Mail->Port = 25; |
---|
75 | $this->Mail->Helo = "localhost.localdomain"; |
---|
76 | $this->Mail->SMTPAuth = false; |
---|
77 | $this->Mail->Username = ""; |
---|
78 | $this->Mail->Password = ""; |
---|
79 | $this->Mail->PluginDir = $INCLUDE_DIR; |
---|
80 | $this->Mail->AddReplyTo("no_reply@phpmailer.sf.net", "Reply Guy"); |
---|
81 | $this->Mail->Sender = "unit_test@phpmailer.sf.net"; |
---|
82 | |
---|
83 | if(strlen($this->Mail->Host) > 0) |
---|
84 | $this->Mail->Mailer = "smtp"; |
---|
85 | else |
---|
86 | { |
---|
87 | $this->Mail->Mailer = "mail"; |
---|
88 | $this->Sender = "unit_test@phpmailer.sf.net"; |
---|
89 | } |
---|
90 | |
---|
91 | global $global_vars; |
---|
92 | $this->SetAddress($global_vars["mail_to"], "Test User"); |
---|
93 | if(strlen($global_vars["mail_cc"]) > 0) |
---|
94 | $this->SetAddress($global_vars["mail_cc"], "Carbon User", "cc"); |
---|
95 | } |
---|
96 | |
---|
97 | /** |
---|
98 | * Run after each test is completed. |
---|
99 | */ |
---|
100 | function tearDown() { |
---|
101 | // Clean global variables |
---|
102 | $this->Mail = NULL; |
---|
103 | $this->ChangeLog = array(); |
---|
104 | $this->NoteLog = array(); |
---|
105 | } |
---|
106 | |
---|
107 | |
---|
108 | /** |
---|
109 | * Build the body of the message in the appropriate format. |
---|
110 | * @private |
---|
111 | * @returns void |
---|
112 | */ |
---|
113 | function BuildBody() { |
---|
114 | $this->CheckChanges(); |
---|
115 | |
---|
116 | // Determine line endings for message |
---|
117 | if($this->Mail->ContentType == "text/html" || strlen($this->Mail->AltBody) > 0) |
---|
118 | { |
---|
119 | $eol = "<br/>"; |
---|
120 | $bullet = "<li>"; |
---|
121 | $bullet_start = "<ul>"; |
---|
122 | $bullet_end = "</ul>"; |
---|
123 | } |
---|
124 | else |
---|
125 | { |
---|
126 | $eol = "\n"; |
---|
127 | $bullet = " - "; |
---|
128 | $bullet_start = ""; |
---|
129 | $bullet_end = ""; |
---|
130 | } |
---|
131 | |
---|
132 | $ReportBody = ""; |
---|
133 | |
---|
134 | $ReportBody .= "---------------------" . $eol; |
---|
135 | $ReportBody .= "Unit Test Information" . $eol; |
---|
136 | $ReportBody .= "---------------------" . $eol; |
---|
137 | $ReportBody .= "phpmailer version: " . $this->Mail->Version . $eol; |
---|
138 | $ReportBody .= "Content Type: " . $this->Mail->ContentType . $eol; |
---|
139 | |
---|
140 | if(strlen($this->Mail->Host) > 0) |
---|
141 | $ReportBody .= "Host: " . $this->Mail->Host . $eol; |
---|
142 | |
---|
143 | // If attachments then create an attachment list |
---|
144 | if(count($this->Mail->attachment) > 0) |
---|
145 | { |
---|
146 | $ReportBody .= "Attachments:" . $eol; |
---|
147 | $ReportBody .= $bullet_start; |
---|
148 | for($i = 0; $i < count($this->Mail->attachment); $i++) |
---|
149 | { |
---|
150 | $ReportBody .= $bullet . "Name: " . $this->Mail->attachment[$i][1] . ", "; |
---|
151 | $ReportBody .= "Encoding: " . $this->Mail->attachment[$i][3] . ", "; |
---|
152 | $ReportBody .= "Type: " . $this->Mail->attachment[$i][4] . $eol; |
---|
153 | } |
---|
154 | $ReportBody .= $bullet_end . $eol; |
---|
155 | } |
---|
156 | |
---|
157 | // If there are changes then list them |
---|
158 | if(count($this->ChangeLog) > 0) |
---|
159 | { |
---|
160 | $ReportBody .= "Changes" . $eol; |
---|
161 | $ReportBody .= "-------" . $eol; |
---|
162 | |
---|
163 | $ReportBody .= $bullet_start; |
---|
164 | for($i = 0; $i < count($this->ChangeLog); $i++) |
---|
165 | { |
---|
166 | $ReportBody .= $bullet . $this->ChangeLog[$i][0] . " was changed to [" . |
---|
167 | $this->ChangeLog[$i][1] . "]" . $eol; |
---|
168 | } |
---|
169 | $ReportBody .= $bullet_end . $eol . $eol; |
---|
170 | } |
---|
171 | |
---|
172 | // If there are notes then list them |
---|
173 | if(count($this->NoteLog) > 0) |
---|
174 | { |
---|
175 | $ReportBody .= "Notes" . $eol; |
---|
176 | $ReportBody .= "-----" . $eol; |
---|
177 | |
---|
178 | $ReportBody .= $bullet_start; |
---|
179 | for($i = 0; $i < count($this->NoteLog); $i++) |
---|
180 | { |
---|
181 | $ReportBody .= $bullet . $this->NoteLog[$i] . $eol; |
---|
182 | } |
---|
183 | $ReportBody .= $bullet_end; |
---|
184 | } |
---|
185 | |
---|
186 | // Re-attach the original body |
---|
187 | $this->Mail->Body .= $eol . $eol . $ReportBody; |
---|
188 | } |
---|
189 | |
---|
190 | /** |
---|
191 | * Check which default settings have been changed for the report. |
---|
192 | * @private |
---|
193 | * @returns void |
---|
194 | */ |
---|
195 | function CheckChanges() { |
---|
196 | if($this->Mail->Priority != 3) |
---|
197 | $this->AddChange("Priority", $this->Mail->Priority); |
---|
198 | if($this->Mail->Encoding != "8bit") |
---|
199 | $this->AddChange("Encoding", $this->Mail->Encoding); |
---|
200 | if($this->Mail->CharSet != "iso-8859-1") |
---|
201 | $this->AddChange("CharSet", $this->Mail->CharSet); |
---|
202 | if($this->Mail->Sender != "") |
---|
203 | $this->AddChange("Sender", $this->Mail->Sender); |
---|
204 | if($this->Mail->WordWrap != 0) |
---|
205 | $this->AddChange("WordWrap", $this->Mail->WordWrap); |
---|
206 | if($this->Mail->Mailer != "mail") |
---|
207 | $this->AddChange("Mailer", $this->Mail->Mailer); |
---|
208 | if($this->Mail->Port != 25) |
---|
209 | $this->AddChange("Port", $this->Mail->Port); |
---|
210 | if($this->Mail->Helo != "localhost.localdomain") |
---|
211 | $this->AddChange("Helo", $this->Mail->Helo); |
---|
212 | if($this->Mail->SMTPAuth) |
---|
213 | $this->AddChange("SMTPAuth", "true"); |
---|
214 | } |
---|
215 | |
---|
216 | /** |
---|
217 | * Adds a change entry. |
---|
218 | * @private |
---|
219 | * @returns void |
---|
220 | */ |
---|
221 | function AddChange($sName, $sNewValue) { |
---|
222 | $cur = count($this->ChangeLog); |
---|
223 | $this->ChangeLog[$cur][0] = $sName; |
---|
224 | $this->ChangeLog[$cur][1] = $sNewValue; |
---|
225 | } |
---|
226 | |
---|
227 | /** |
---|
228 | * Adds a simple note to the message. |
---|
229 | * @public |
---|
230 | * @returns void |
---|
231 | */ |
---|
232 | function AddNote($sValue) { |
---|
233 | $this->NoteLog[] = $sValue; |
---|
234 | } |
---|
235 | |
---|
236 | /** |
---|
237 | * Adds all of the addresses |
---|
238 | * @public |
---|
239 | * @returns void |
---|
240 | */ |
---|
241 | function SetAddress($sAddress, $sName = "", $sType = "to") { |
---|
242 | switch($sType) |
---|
243 | { |
---|
244 | case "to": |
---|
245 | $this->Mail->AddAddress($sAddress, $sName); |
---|
246 | break; |
---|
247 | case "cc": |
---|
248 | $this->Mail->AddCC($sAddress, $sName); |
---|
249 | break; |
---|
250 | case "bcc": |
---|
251 | $this->Mail->AddBCC($sAddress, $sName); |
---|
252 | break; |
---|
253 | } |
---|
254 | } |
---|
255 | |
---|
256 | ///////////////////////////////////////////////// |
---|
257 | // UNIT TESTS |
---|
258 | ///////////////////////////////////////////////// |
---|
259 | |
---|
260 | /** |
---|
261 | * Try a plain message. |
---|
262 | */ |
---|
263 | function test_WordWrap() { |
---|
264 | |
---|
265 | $this->Mail->WordWrap = 40; |
---|
266 | $my_body = "Here is the main body of this message. It should " . |
---|
267 | "be quite a few lines. It should be wrapped at the " . |
---|
268 | "40 characters. Make sure that it is."; |
---|
269 | $nBodyLen = strlen($my_body); |
---|
270 | $my_body .= "\n\nThis is the above body length: " . $nBodyLen; |
---|
271 | |
---|
272 | $this->Mail->Body = $my_body; |
---|
273 | $this->Mail->Subject .= ": Wordwrap"; |
---|
274 | |
---|
275 | $this->BuildBody(); |
---|
276 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
277 | } |
---|
278 | |
---|
279 | /** |
---|
280 | * Try a plain message. |
---|
281 | */ |
---|
282 | function test_Low_Priority() { |
---|
283 | |
---|
284 | $this->Mail->Priority = 5; |
---|
285 | $this->Mail->Body = "Here is the main body. There should be " . |
---|
286 | "a reply to address in this message."; |
---|
287 | $this->Mail->Subject .= ": Low Priority"; |
---|
288 | $this->Mail->AddReplyTo("nobody@nobody.com", "Nobody (Unit Test)"); |
---|
289 | |
---|
290 | $this->BuildBody(); |
---|
291 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
292 | } |
---|
293 | |
---|
294 | /** |
---|
295 | * Simple plain file attachment test. |
---|
296 | */ |
---|
297 | function test_Multiple_Plain_FileAttachment() { |
---|
298 | |
---|
299 | $this->Mail->Body = "Here is the text body"; |
---|
300 | $this->Mail->Subject .= ": Plain + Multiple FileAttachments"; |
---|
301 | |
---|
302 | if(!$this->Mail->AddAttachment("test.png")) |
---|
303 | { |
---|
304 | $this->assert(false, $this->Mail->ErrorInfo); |
---|
305 | return; |
---|
306 | } |
---|
307 | |
---|
308 | if(!$this->Mail->AddAttachment("phpmailer_test.php", "test.txt")) |
---|
309 | { |
---|
310 | $this->assert(false, $this->Mail->ErrorInfo); |
---|
311 | return; |
---|
312 | } |
---|
313 | |
---|
314 | $this->BuildBody(); |
---|
315 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
316 | } |
---|
317 | |
---|
318 | /** |
---|
319 | * Simple plain string attachment test. |
---|
320 | */ |
---|
321 | function test_Plain_StringAttachment() { |
---|
322 | |
---|
323 | $this->Mail->Body = "Here is the text body"; |
---|
324 | $this->Mail->Subject .= ": Plain + StringAttachment"; |
---|
325 | |
---|
326 | $sAttachment = "These characters are the content of the " . |
---|
327 | "string attachment.\nThis might be taken from a ". |
---|
328 | "database or some other such thing. "; |
---|
329 | |
---|
330 | $this->Mail->AddStringAttachment($sAttachment, "string_attach.txt"); |
---|
331 | |
---|
332 | $this->BuildBody(); |
---|
333 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
334 | } |
---|
335 | |
---|
336 | /** |
---|
337 | * Plain quoted-printable message. |
---|
338 | */ |
---|
339 | function test_Quoted_Printable() { |
---|
340 | |
---|
341 | $this->Mail->Body = "Here is the main body"; |
---|
342 | $this->Mail->Subject .= ": Plain + Quoted-printable"; |
---|
343 | $this->Mail->Encoding = "quoted-printable"; |
---|
344 | |
---|
345 | $this->BuildBody(); |
---|
346 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
347 | } |
---|
348 | |
---|
349 | /** |
---|
350 | * Try a plain message. |
---|
351 | */ |
---|
352 | function test_Html() { |
---|
353 | |
---|
354 | $this->Mail->IsHTML(true); |
---|
355 | $this->Mail->Subject .= ": HTML only"; |
---|
356 | |
---|
357 | $this->Mail->Body = "This is a <b>test message</b> written in HTML. </br>" . |
---|
358 | "Go to <a href=\"http://phpmailer.sourceforge.net/\">" . |
---|
359 | "http://phpmailer.sourceforge.net/</a> for new versions of " . |
---|
360 | "phpmailer. <p/> Thank you!"; |
---|
361 | |
---|
362 | $this->BuildBody(); |
---|
363 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
364 | } |
---|
365 | |
---|
366 | /** |
---|
367 | * Simple HTML and attachment test |
---|
368 | */ |
---|
369 | function test_HTML_Attachment() { |
---|
370 | |
---|
371 | $this->Mail->Body = "This is the <b>HTML</b> part of the email."; |
---|
372 | $this->Mail->Subject .= ": HTML + Attachment"; |
---|
373 | $this->Mail->IsHTML(true); |
---|
374 | |
---|
375 | if(!$this->Mail->AddAttachment("phpmailer_test.php", "test_attach.txt")) |
---|
376 | { |
---|
377 | $this->assert(false, $this->Mail->ErrorInfo); |
---|
378 | return; |
---|
379 | } |
---|
380 | |
---|
381 | $this->BuildBody(); |
---|
382 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
383 | } |
---|
384 | |
---|
385 | /** |
---|
386 | * An embedded attachment test. |
---|
387 | */ |
---|
388 | function test_Embedded_Image() { |
---|
389 | |
---|
390 | $this->Mail->Body = "Embedded Image: <img alt=\"phpmailer\" src=\"cid:my-attach\">" . |
---|
391 | "Here is an image!</a>"; |
---|
392 | $this->Mail->Subject .= ": Embedded Image"; |
---|
393 | $this->Mail->IsHTML(true); |
---|
394 | |
---|
395 | if(!$this->Mail->AddEmbeddedImage("test.png", "my-attach", "test.png", |
---|
396 | "base64", "image/png")) |
---|
397 | { |
---|
398 | $this->assert(false, $this->Mail->ErrorInfo); |
---|
399 | return; |
---|
400 | } |
---|
401 | |
---|
402 | $this->BuildBody(); |
---|
403 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
404 | } |
---|
405 | |
---|
406 | /** |
---|
407 | * An embedded attachment test. |
---|
408 | */ |
---|
409 | function test_Multi_Embedded_Image() { |
---|
410 | |
---|
411 | $this->Mail->Body = "Embedded Image: <img alt=\"phpmailer\" src=\"cid:my-attach\">" . |
---|
412 | "Here is an image!</a>"; |
---|
413 | $this->Mail->Subject .= ": Embedded Image + Attachment"; |
---|
414 | $this->Mail->IsHTML(true); |
---|
415 | |
---|
416 | if(!$this->Mail->AddEmbeddedImage("test.png", "my-attach", "test.png", |
---|
417 | "base64", "image/png")) |
---|
418 | { |
---|
419 | $this->assert(false, $this->Mail->ErrorInfo); |
---|
420 | return; |
---|
421 | } |
---|
422 | |
---|
423 | if(!$this->Mail->AddAttachment("phpmailer_test.php", "test.txt")) |
---|
424 | { |
---|
425 | $this->assert(false, $this->Mail->ErrorInfo); |
---|
426 | return; |
---|
427 | } |
---|
428 | |
---|
429 | $this->BuildBody(); |
---|
430 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
431 | } |
---|
432 | |
---|
433 | /** |
---|
434 | * Simple multipart/alternative test. |
---|
435 | */ |
---|
436 | function test_AltBody() { |
---|
437 | |
---|
438 | $this->Mail->Body = "This is the <b>HTML</b> part of the email."; |
---|
439 | $this->Mail->AltBody = "Here is the text body of this message. " . |
---|
440 | "It should be quite a few lines. It should be wrapped at the " . |
---|
441 | "40 characters. Make sure that it is."; |
---|
442 | $this->Mail->WordWrap = 40; |
---|
443 | $this->AddNote("This is a mulipart alternative email"); |
---|
444 | $this->Mail->Subject .= ": AltBody + Word Wrap"; |
---|
445 | |
---|
446 | $this->BuildBody(); |
---|
447 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
448 | } |
---|
449 | |
---|
450 | /** |
---|
451 | * Simple HTML and attachment test |
---|
452 | */ |
---|
453 | function test_AltBody_Attachment() { |
---|
454 | |
---|
455 | $this->Mail->Body = "This is the <b>HTML</b> part of the email."; |
---|
456 | $this->Mail->AltBody = "This is the text part of the email."; |
---|
457 | $this->Mail->Subject .= ": AltBody + Attachment"; |
---|
458 | $this->Mail->IsHTML(true); |
---|
459 | |
---|
460 | if(!$this->Mail->AddAttachment("phpmailer_test.php", "test_attach.txt")) |
---|
461 | { |
---|
462 | $this->assert(false, $this->Mail->ErrorInfo); |
---|
463 | return; |
---|
464 | } |
---|
465 | |
---|
466 | $this->BuildBody(); |
---|
467 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
468 | |
---|
469 | $fp = fopen("message.txt", "w"); |
---|
470 | fwrite($fp, $this->Mail->CreateHeader() . $this->Mail->CreateBody()); |
---|
471 | fclose($fp); |
---|
472 | } |
---|
473 | |
---|
474 | function test_MultipleSend() { |
---|
475 | $this->Mail->Body = "Sending two messages without keepalive"; |
---|
476 | $this->BuildBody(); |
---|
477 | $subject = $this->Mail->Subject; |
---|
478 | |
---|
479 | $this->Mail->Subject = $subject . ": SMTP 1"; |
---|
480 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
481 | |
---|
482 | $this->Mail->Subject = $subject . ": SMTP 2"; |
---|
483 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
484 | } |
---|
485 | |
---|
486 | function test_SmtpKeepAlive() { |
---|
487 | $this->Mail->Body = "This was done using the SMTP keep-alive."; |
---|
488 | $this->BuildBody(); |
---|
489 | $subject = $this->Mail->Subject; |
---|
490 | |
---|
491 | $this->Mail->SMTPKeepAlive = true; |
---|
492 | $this->Mail->Subject = $subject . ": SMTP keep-alive 1"; |
---|
493 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
494 | |
---|
495 | $this->Mail->Subject = $subject . ": SMTP keep-alive 2"; |
---|
496 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
497 | $this->Mail->SmtpClose(); |
---|
498 | } |
---|
499 | |
---|
500 | /** |
---|
501 | * Tests this denial of service attack: |
---|
502 | * http://www.cybsec.com/vuln/PHPMailer-DOS.pdf |
---|
503 | */ |
---|
504 | function test_DenialOfServiceAttack() { |
---|
505 | $this->Mail->Body = "This should no longer cause a denial of service."; |
---|
506 | $this->BuildBody(); |
---|
507 | |
---|
508 | $this->Mail->Subject = str_repeat("A", 998); |
---|
509 | $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); |
---|
510 | } |
---|
511 | |
---|
512 | function test_Error() { |
---|
513 | $this->Mail->Subject .= ": This should be sent"; |
---|
514 | $this->BuildBody(); |
---|
515 | $this->Mail->ClearAllRecipients(); // no addresses should cause an error |
---|
516 | $this->assert($this->Mail->IsError() == false, "Error found"); |
---|
517 | $this->assert($this->Mail->Send() == false, "Send succeeded"); |
---|
518 | $this->assert($this->Mail->IsError(), "No error found"); |
---|
519 | $this->assertEquals('You must provide at least one ' . |
---|
520 | 'recipient email address.', $this->Mail->ErrorInfo); |
---|
521 | $this->Mail->AddAddress(get("mail_to")); |
---|
522 | $this->assert($this->Mail->Send(), "Send failed"); |
---|
523 | } |
---|
524 | } |
---|
525 | |
---|
526 | /** |
---|
527 | * Create and run test instance. |
---|
528 | */ |
---|
529 | |
---|
530 | if(isset($HTTP_GET_VARS)) |
---|
531 | $global_vars = $HTTP_GET_VARS; |
---|
532 | else |
---|
533 | $global_vars = $_REQUEST; |
---|
534 | |
---|
535 | if(isset($global_vars["submitted"])) |
---|
536 | { |
---|
537 | echo "Test results:<br>"; |
---|
538 | $suite = new TestSuite( "phpmailerTest" ); |
---|
539 | |
---|
540 | $testRunner = new TestRunner; |
---|
541 | $testRunner->run($suite); |
---|
542 | echo "<hr noshade/>"; |
---|
543 | } |
---|
544 | |
---|
545 | function get($sName) { |
---|
546 | global $global_vars; |
---|
547 | if(isset($global_vars[$sName])) |
---|
548 | return $global_vars[$sName]; |
---|
549 | else |
---|
550 | return ""; |
---|
551 | } |
---|
552 | |
---|
553 | ?> |
---|
554 | |
---|
555 | <html> |
---|
556 | <body> |
---|
557 | <h3>phpmailer Unit Test</h3> |
---|
558 | By entering a SMTP hostname it will automatically perform tests with SMTP. |
---|
559 | |
---|
560 | <form name="phpmailer_unit" action="phpmailer_test.php" method="get"> |
---|
561 | <input type="hidden" name="submitted" value="1"/> |
---|
562 | To Address: <input type="text" size="50" name="mail_to" value="<?php echo get("mail_to"); ?>"/> |
---|
563 | <br/> |
---|
564 | Cc Address: <input type="text" size="50" name="mail_cc" value="<?php echo get("mail_cc"); ?>"/> |
---|
565 | <br/> |
---|
566 | SMTP Hostname: <input type="text" size="50" name="mail_host" value="<?php echo get("mail_host"); ?>"/> |
---|
567 | <p/> |
---|
568 | <input type="submit" value="Run Test"/> |
---|
569 | |
---|
570 | </form> |
---|
571 | </body> |
---|
572 | </html> |
---|