dkelsey         Fri Jan 23 17:12:17 2009 UTC

  Modified files:              
    /php-src/ext/standard/tests/mail    mail_basic.phpt mail_basic5.phpt 
                                        mail_variation_alt1-win32.phpt 
                                        mail_basic_alt1-win32.phpt 
                                        mail_basic_alt4-win32.phpt 
                                        mail_variation_alt3-win32.phpt 
                                        mail_variation2.phpt 
                                        mail_basic_alt3-win32.phpt 
                                        mail_skipif.inc mail_include.inc 
                                        ezmlm_hash_error.phpt 
                                        mail_error.phpt mail_basic3.phpt 
                                        mail_basic4.phpt 
                                        mail_variation1.phpt 
                                        ezmlm_hash_variation1.phpt 
                                        ezmlm_hash_basic.phpt 
                                        mail_variation_alt2-win32.phpt 
                                        ezmlm_hash_basic_64bit.phpt 
                                        mail_basic_alt2-win32.phpt 
                                        mail_basic2.phpt 
  Log:
  added some mail tests. Tested on windows, linux and linux 64bit
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_basic.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_basic.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/mail_basic.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_basic.phpt     Fri Jan 23 17:12:13 2009
@@ -0,0 +1,59 @@
+--TEST--
+Test mail() function : basic functionality 
+--INI--
+sendmail_path=tee mailBasic.out >/dev/null
+--SKIPIF--
+<?php
+if(substr(PHP_OS, 0, 3) == "WIN")
+  die("skip Won't run on Windows");
+?>
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing mail() : basic functionality ***\n";
+
+
+// Initialise all required variables
+$to = 'u...@company.com';
+$subject = 'Test Subject';
+$message = 'A Message';
+$additional_headers = 'KHeaders';
+$outFile = "mailBasic.out";
+...@unlink($outFile);
+
+echo "-- All Mail Content Parameters --\n";
+// Calling mail() with all additional headers
+var_dump( mail($to, $subject, $message, $additional_headers) );
+echo file_get_contents($outFile);
+unlink($outFile);
+
+echo "\n-- Mandatory Parameters --\n";
+// Calling mail() with mandatory arguments
+var_dump( mail($to, $subject, $message) );
+echo file_get_contents($outFile);
+unlink($outFile);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing mail() : basic functionality ***
+-- All Mail Content Parameters --
+bool(true)
+To: u...@company.com
+Subject: Test Subject
+KHeaders
+
+A Message
+
+-- Mandatory Parameters --
+bool(true)
+To: u...@company.com
+Subject: Test Subject
+
+A Message
+===DONE===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_basic5.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_basic5.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/mail_basic5.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_basic5.phpt    Fri Jan 23 17:12:13 2009
@@ -0,0 +1,34 @@
+--TEST--
+Test mail() function : basic functionality 
+--INI--
+sendmail_path="exit 1"
+--SKIPIF--
+<?php
+if(substr(PHP_OS, 0, 3) == "WIN")
+  die("skip Won't run on Windows");
+?>
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing mail() : basic functionality ***\n";
+
+
+// Initialise all required variables
+$to = 'u...@company.com';
+$subject = 'Test Subject';
+$message = 'A Message';
+
+echo "-- failure --\n";
+var_dump( mail($to, $subject, $message) );
+?>
+===DONE===
+--EXPECT--
+*** Testing mail() : basic functionality ***
+-- failure --
+bool(false)
+===DONE===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_variation_alt1-win32.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_variation_alt1-win32.phpt
diff -u /dev/null 
php-src/ext/standard/tests/mail/mail_variation_alt1-win32.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_variation_alt1-win32.phpt      Fri Jan 
23 17:12:13 2009
@@ -0,0 +1,92 @@
+--TEST--
+Test mail() function : basic functionality 
+--SKIPIF--
+<?php 
+if( substr(PHP_OS, 0, 3) != 'WIN' ) {
+   die('skip...Windows only test');
+}
+
+require_once(dirname(__FILE__).'/mail_skipif.inc');
+?>
+--INI--
+max_execution_time = 120
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+error_reporting(E_ALL & ~E_STRICT);
+ini_set("SMTP", "localhost");
+ini_set("smtp_port", 2525);
+ini_set("sendmail_from", "u...@company.com");
+
+echo "*** Testing mail() : basic functionality ***\n";
+require_once(dirname(__FILE__).'/mail_include.inc');
+$subject_prefix = "!**PHPT**!";
+
+$to = "$username";
+$subject = "$subject_prefix: Basic PHPT test for mail() function";
+$message = <<<HERE
+Description
+bool mail ( string \$to , string \$subject , string \$message [, string 
\$additional_headers [, string \$additional_parameters]] )
+Send an email message
+HERE;
+
+$res = mail($to, $subject, $message);
+
+if ($res !== true) {
+       exit("TEST COMPLETED : Unable to send test email\n"); 
+} else {
+       echo "Msg sent OK\n";
+}
+
+// Search for email message on the mail server using imap.
+$imap_stream = imap_open($default_mailbox, $username, $password);
+if ($imap_stream === false) {
+       echo "Cannot connect to IMAP server $server: " . imap_last_error() . 
"\n";
+       return false;
+}      
+
+$found = false;
+$repeat_count = 20; // we will repeat a max of 20 times 
+while (!$found && $repeat_count > 0) {
+
+       // sleep for a while to allow msg to be delivered
+       sleep(1);
+
+       $current_msg_count = imap_check($imap_stream)->Nmsgs;
+
+       // Iterate over recent msgs to find the one we sent above
+       for ($i = 1; $i <= $current_msg_count; $i++) {
+               // get hdr details
+               $hdr = imap_headerinfo($imap_stream, $i);  
+
+               if (substr($hdr->Subject, 0 , strlen($subject_prefix)) == 
$subject_prefix) {
+                       echo "Id of msg just sent is $i\n"; 
+                       echo ".. delete it\n"; 
+                       imap_delete($imap_stream, $i);
+                       $found = true;
+                       break; 
+               }
+       }
+       
+       $repeat_count -= 1;
+}
+
+if (!$found) { 
+       echo "TEST FAILED: email not delivered\n"; 
+} else {
+       echo "TEST PASSED: Msgs sent and deleted OK\n";
+}
+
+imap_close($imap_stream, CL_EXPUNGE);
+?>
+===Done===
+--EXPECTF--
+*** Testing mail() : basic functionality ***
+
+Warning: mail(): Failed to connect to mailserver at "localhost" port 2525, 
verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in %s on 
line %d
+TEST COMPLETED : Unable to send test email
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_basic_alt1-win32.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_basic_alt1-win32.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/mail_basic_alt1-win32.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_basic_alt1-win32.phpt  Fri Jan 23 
17:12:13 2009
@@ -0,0 +1,95 @@
+--TEST--
+Test mail() function : basic functionality 
+--SKIPIF--
+<?php 
+
+if( substr(PHP_OS, 0, 3) != 'WIN' ) {
+   die('skip...Windows only test');
+}
+
+require_once(dirname(__FILE__).'/mail_skipif.inc');
+?>
+--INI--
+max_execution_time = 120
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+error_reporting(E_ALL & ~E_STRICT);
+ini_set("SMTP", "localhost");
+ini_set("smtp_port", 25);
+ini_set("sendmail_from", "u...@company.com");
+
+echo "*** Testing mail() : basic functionality ***\n";
+require_once(dirname(__FILE__).'/mail_include.inc');
+$subject_prefix = "!**PHPT**!";
+
+$to = "$username";
+$subject = "$subject_prefix: Basic PHPT test for mail() function";
+$message = <<<HERE
+Description
+bool mail ( string \$to , string \$subject , string \$message [, string 
\$additional_headers [, string \$additional_parameters]] )
+Send an email message
+HERE;
+
+$res = mail($to, $subject, $message);
+
+if ($res !== true) {
+       exit("TEST FAILED : Unable to send test email\n"); 
+} else {
+       echo "Msg sent OK\n";
+}
+
+// Search for email message on the mail server using imap.
+$imap_stream = imap_open($default_mailbox, $username, $password);
+if ($imap_stream === false) {
+       echo "Cannot connect to IMAP server $server: " . imap_last_error() . 
"\n";
+       return false;
+}      
+
+$found = false;
+$repeat_count = 20; // we will repeat a max of 20 times 
+while (!$found && $repeat_count > 0) {
+
+       // sleep for a while to allow msg to be delivered
+       sleep(1);
+
+       $current_msg_count = imap_check($imap_stream)->Nmsgs;
+
+       // Iterate over recent msgs to find the one we sent above
+       for ($i = 1; $i <= $current_msg_count; $i++) {
+               // get hdr details
+               $hdr = imap_headerinfo($imap_stream, $i);  
+
+               if (substr($hdr->Subject, 0 , strlen($subject_prefix)) == 
$subject_prefix) {
+                       echo "Id of msg just sent is $i\n"; 
+                       echo ".. delete it\n"; 
+                       imap_delete($imap_stream, $i);
+                       $found = true;
+                       break; 
+               }
+       }
+       
+       $repeat_count -= 1;
+}
+
+if (!$found) { 
+       echo "TEST FAILED: email not delivered\n"; 
+} else {
+       echo "TEST PASSED: Msgs sent and deleted OK\n";
+}
+
+imap_close($imap_stream, CL_EXPUNGE);
+?>
+===Done===
+--EXPECTF--
+*** Testing mail() : basic functionality ***
+Msg sent OK
+Id of msg just sent is %d
+.. delete it
+TEST PASSED: Msgs sent and deleted OK
+===Done===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_basic_alt4-win32.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_basic_alt4-win32.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/mail_basic_alt4-win32.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_basic_alt4-win32.phpt  Fri Jan 23 
17:12:14 2009
@@ -0,0 +1,94 @@
+--TEST--
+Test mail() function : basic functionality 
+--SKIPIF--
+<?php 
+if( substr(PHP_OS, 0, 3) != 'WIN' ) {
+   die('skip...Windows only test');
+}
+
+require_once(dirname(__FILE__).'/mail_skipif.inc');
+?>
+--INI--
+max_execution_time = 120
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+error_reporting(E_ALL & ~E_STRICT);
+
+echo "*** Testing mail() : basic functionality ***\n";
+require_once(dirname(__FILE__).'/mail_include.inc');
+$subject_prefix = "!**PHPT**!";
+
+$to = "$username";
+$subject = "$subject_prefix: Basic PHPT test for mail() function";
+$message = <<<HERE
+Description
+bool mail ( string \$to , string \$subject , string \$message [, string 
\$additional_headers [, string \$additional_parameters]] )
+Send an email message
+HERE;
+
+$extra_headers = "from: u...@company.com";
+$extra_parameters = "addons"; // should be ignored
+
+$res = mail($to, $subject, $message, $extra_headers, $extra_parameters);
+
+if ($res !== true) {
+       exit("TEST FAILED : Unable to send test email\n"); 
+} else {
+       echo "Msg sent OK\n";
+}
+
+// Search for email message on the mail server using imap.
+$imap_stream = imap_open($default_mailbox, $username, $password);
+if ($imap_stream === false) {
+       echo "Cannot connect to IMAP server $server: " . imap_last_error() . 
"\n";
+       return false;
+}      
+
+$found = false;
+$repeat_count = 20; // we will repeat a max of 20 times 
+while (!$found && $repeat_count > 0) {
+
+       // sleep for a while to allow msg to be delivered
+       sleep(1);
+
+       $current_msg_count = imap_check($imap_stream)->Nmsgs;
+
+       // Iterate over recent msgs to find the one we sent above
+       for ($i = 1; $i <= $current_msg_count; $i++) {
+               // get hdr details
+               $hdr = imap_headerinfo($imap_stream, $i);  
+
+               if (substr($hdr->Subject, 0 , strlen($subject_prefix)) == 
$subject_prefix) {
+                       echo "Id of msg just sent is $i\n"; 
+                       echo ".. delete it\n"; 
+                       imap_delete($imap_stream, $i);
+                       $found = true;
+                       break; 
+               }
+       }
+       
+       $repeat_count -= 1;
+}
+
+if (!$found) { 
+       echo "TEST FAILED: email not delivered\n"; 
+} else {
+       echo "TEST PASSED: Msgs sent and deleted OK\n";
+}
+
+imap_close($imap_stream, CL_EXPUNGE);
+?>
+===Done===
+--EXPECTF--
+*** Testing mail() : basic functionality ***
+Msg sent OK
+Id of msg just sent is %d
+.. delete it
+TEST PASSED: Msgs sent and deleted OK
+===Done===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_variation_alt3-win32.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_variation_alt3-win32.phpt
diff -u /dev/null 
php-src/ext/standard/tests/mail/mail_variation_alt3-win32.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_variation_alt3-win32.phpt      Fri Jan 
23 17:12:14 2009
@@ -0,0 +1,91 @@
+--TEST--
+Test mail() function : basic functionality 
+--SKIPIF--
+<?php 
+if( substr(PHP_OS, 0, 3) != 'WIN' ) {
+   die('skip...Windows only test');
+}
+
+require_once(dirname(__FILE__).'/mail_skipif.inc');
+?>
+--INI--
+max_execution_time = 120
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+error_reporting(E_ALL & ~E_STRICT);
+ini_set("SMTP", "localhost");
+ini_set("smtp_port", 25);
+
+echo "*** Testing mail() : basic functionality ***\n";
+require_once(dirname(__FILE__).'/mail_include.inc');
+$subject_prefix = "!**PHPT**!";
+
+$to = "$username";
+$subject = "$subject_prefix: Basic PHPT test for mail() function";
+$message = <<<HERE
+Description
+bool mail ( string \$to , string \$subject , string \$message [, string 
\$additional_headers [, string \$additional_parameters]] )
+Send an email message
+HERE;
+
+$res = mail($to, $subject, $message);
+
+if ($res !== true) {
+       exit("TEST COMPLETED : Unable to send test email\n"); 
+} else {
+       echo "Msg sent OK\n";
+}
+
+// Search for email message on the mail server using imap.
+$imap_stream = imap_open($default_mailbox, $username, $password);
+if ($imap_stream === false) {
+       echo "Cannot connect to IMAP server $server: " . imap_last_error() . 
"\n";
+       return false;
+}      
+
+$found = false;
+$repeat_count = 20; // we will repeat a max of 20 times 
+while (!$found && $repeat_count > 0) {
+
+       // sleep for a while to allow msg to be delivered
+       sleep(1);
+
+       $current_msg_count = imap_check($imap_stream)->Nmsgs;
+
+       // Iterate over recent msgs to find the one we sent above
+       for ($i = 1; $i <= $current_msg_count; $i++) {
+               // get hdr details
+               $hdr = imap_headerinfo($imap_stream, $i);  
+
+               if (substr($hdr->Subject, 0 , strlen($subject_prefix)) == 
$subject_prefix) {
+                       echo "Id of msg just sent is $i\n"; 
+                       echo ".. delete it\n"; 
+                       imap_delete($imap_stream, $i);
+                       $found = true;
+                       break; 
+               }
+       }
+       
+       $repeat_count -= 1;
+}
+
+if (!$found) { 
+       echo "TEST FAILED: email not delivered\n"; 
+} else {
+       echo "TEST PASSED: Msgs sent and deleted OK\n";
+}
+
+imap_close($imap_stream, CL_EXPUNGE);
+?>
+===Done===
+--EXPECTF--
+*** Testing mail() : basic functionality ***
+
+Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header 
missing in %s on line %d
+TEST COMPLETED : Unable to send test email
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_variation2.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_variation2.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/mail_variation2.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_variation2.phpt        Fri Jan 23 
17:12:14 2009
@@ -0,0 +1,39 @@
+--TEST--
+Test mail() function : variation force extra parameters
+--INI--
+sendmail_path=echo --- > mailBasic2.out
+mail.force_extra_parameters="forced params"
+--SKIPIF--
+<?php
+if(substr(PHP_OS, 0, 3) == "WIN")
+  die("skip Won't run on Windows");
+?>
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing mail() : basic functionality ***\n";
+
+
+// Initialise all required variables
+$to = 'u...@company.com';
+$subject = 'Test Subject';
+$message = 'A Message';
+$outFile = "mailBasic2.out";
+...@unlink($outFile);
+
+var_dump( mail($to, $subject, $message) );
+echo file_get_contents($outFile);
+unlink($outFile);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing mail() : basic functionality ***
+bool(true)
+--- forced params
+===DONE===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_basic_alt3-win32.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_basic_alt3-win32.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/mail_basic_alt3-win32.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_basic_alt3-win32.phpt  Fri Jan 23 
17:12:14 2009
@@ -0,0 +1,93 @@
+--TEST--
+Test mail() function : basic functionality 
+--SKIPIF--
+<?php 
+if( substr(PHP_OS, 0, 3) != 'WIN' ) {
+   die('skip...Windows only test');
+}
+
+require_once(dirname(__FILE__).'/mail_skipif.inc');
+?>
+--INI--
+max_execution_time = 120
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+error_reporting(E_ALL & ~E_STRICT);
+
+echo "*** Testing mail() : basic functionality ***\n";
+require_once(dirname(__FILE__).'/mail_include.inc');
+$subject_prefix = "!**PHPT**!";
+
+$to = "$username";
+$subject = "$subject_prefix: Basic PHPT test for mail() function";
+$message = <<<HERE
+Description
+bool mail ( string \$to , string \$subject , string \$message [, string 
\$additional_headers [, string \$additional_parameters]] )
+Send an email message
+HERE;
+
+$extra_headers = "FRom: u...@company.com";
+
+$res = mail($to, $subject, $message, $extra_headers);
+
+if ($res !== true) {
+       exit("TEST FAILED : Unable to send test email\n"); 
+} else {
+       echo "Msg sent OK\n";
+}
+
+// Search for email message on the mail server using imap.
+$imap_stream = imap_open($default_mailbox, $username, $password);
+if ($imap_stream === false) {
+       echo "Cannot connect to IMAP server $server: " . imap_last_error() . 
"\n";
+       return false;
+}      
+
+$found = false;
+$repeat_count = 20; // we will repeat a max of 20 times 
+while (!$found && $repeat_count > 0) {
+
+       // sleep for a while to allow msg to be delivered
+       sleep(1);
+
+       $current_msg_count = imap_check($imap_stream)->Nmsgs;
+
+       // Iterate over recent msgs to find the one we sent above
+       for ($i = 1; $i <= $current_msg_count; $i++) {
+               // get hdr details
+               $hdr = imap_headerinfo($imap_stream, $i);  
+
+               if (substr($hdr->Subject, 0 , strlen($subject_prefix)) == 
$subject_prefix) {
+                       echo "Id of msg just sent is $i\n"; 
+                       echo ".. delete it\n"; 
+                       imap_delete($imap_stream, $i);
+                       $found = true;
+                       break; 
+               }
+       }
+       
+       $repeat_count -= 1;
+}
+
+if (!$found) { 
+       echo "TEST FAILED: email not delivered\n"; 
+} else {
+       echo "TEST PASSED: Msgs sent and deleted OK\n";
+}
+
+imap_close($imap_stream, CL_EXPUNGE);
+?>
+===Done===
+--EXPECTF--
+*** Testing mail() : basic functionality ***
+Msg sent OK
+Id of msg just sent is %d
+.. delete it
+TEST PASSED: Msgs sent and deleted OK
+===Done===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_skipif.inc?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_skipif.inc
diff -u /dev/null php-src/ext/standard/tests/mail/mail_skipif.inc:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_skipif.inc     Fri Jan 23 17:12:14 2009
@@ -0,0 +1,16 @@
+<?php
+extension_loaded('imap') or die('skip imap extension not available in this 
build');
+ 
+// Change these to make tests run successfully
+$mailbox  = '{localhost}';
+$username = 'webmas...@something.com';
+$password = 'p4ssw0rd';
+$options = OP_HALFOPEN; // this should be enough to verify server present
+$retries = 0; // dont retry connect on failure
+
+$mbox = imap_open($mailbox, $username, $password, $options, $retries);
+if (!$mbox) {
+       die("skip could not connect to mailbox $mailbox");
+}
+imap_close($mbox);
+?>
\ No newline at end of file
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_include.inc?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_include.inc
diff -u /dev/null php-src/ext/standard/tests/mail/mail_include.inc:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_include.inc    Fri Jan 23 17:12:14 2009
@@ -0,0 +1,150 @@
+<?php
+// Change these to make tests run successfully
+$server   = '{localhost}';
+$default_mailbox = $server . "INBOX";
+$domain = "something.com";
+$admin_user = "webmaster"; // a user with admin access 
+$username = "$admin_u...@$domain";
+$password = 'p4ssw0rd';
+$users = array("webmaster", "info", "admin", "foo"); // tests require 4 valid 
userids
+$mailbox_prefix = "phpttest"; // name used for test mailbox
+
+/**
+ * Create a test mailbox and populate with msgs 
+ *
+ * @para, string mailbox_suffix Suffix used to uniquely identify mailboxes
+ * @param int message_count number of test msgs to be written to new mailbox 
+ * 
+ * @return IMAP stream to new mailbox on sucesss; FALSE on failure
+ */
+function setup_test_mailbox($mailbox_suffix, $message_count, &$new_mailbox = 
null, $msg_type = "simple"){
+       global $server, $default_mailbox, $username, $password;
+       
+       // open a stream to default mailbox
+       $imap_stream = imap_open($default_mailbox, $username, $password);
+
+       if ($imap_stream === false) {
+               echo "Cannot connect to IMAP server $server: " . 
imap_last_error() . "\n";
+               return false;
+       }       
+       
+       echo "Create a temporary mailbox and add " . $message_count .  " 
msgs\n";
+       $new_mailbox = create_mailbox($imap_stream, $mailbox_suffix, 
$message_count, $msg_type);
+       if ($new_mailbox === false) {
+          echo "Cant create a temporary mailbox: " . imap_last_error(). "\n";
+          return false;
+       }
+       
+       echo ".. mailbox '$new_mailbox' created\n";
+       
+       // reopen stream to new mailbox
+       if (imap_reopen($imap_stream, $new_mailbox) === false) {
+               echo "cant re-open '$new_mailbox' mailbox: " . 
imap_last_error() . "\n";
+               return false;
+       }
+       
+       return $imap_stream;
+}
+
+/**
+ * Create mailbox and fill with generic emails
+ *
+ * @param resource $imap_stream
+ * @param string $mailbox
+ */
+function create_mailbox($imap_stream, $mailbox_suffix, $message_count, 
$msg_type= "simple"){
+       global $default_mailbox, $mailbox_prefix;
+       $mailbox = $default_mailbox . "." . $mailbox_prefix . $mailbox_suffix;
+       
+       $mailboxes = imap_getmailboxes($imap_stream, $mailbox, '*');
+       
+       // check mailbox does not already exist
+       if ($mailboxes) {
+               foreach($mailboxes as $value) {
+                       if ($value->name == $mailbox) {
+                               exit ("TEST FAILED : Mailbox '$mailbox' already 
exists\n");
+                       }
+               }
+       }       
+
+       if (imap_createmailbox($imap_stream, $mailbox) === false) {
+               return false;
+       }
+       
+       // Add number of test msgs requested
+       if ($message_count > 0) {
+               populate_mailbox($imap_stream, $mailbox, $message_count, 
$msg_type);
+       }       
+       
+       return $mailbox;
+}
+
+/**
+ * Populate a mailbox with generic emails
+ *
+ * @param resource $imap_stream
+ * @param string $mailbox
+ */
+function populate_mailbox($imap_stream, $mailbox, $message_count, $msg_type = 
"simple"){
+
+       global $users, $domain;
+
+       for($i = 1; $i <= $message_count; $i++) {
+               if ($msg_type == "simple") {
+                       $msg =  "From: f...@anywhere.com\r\n"
+                               . "To: $users...@$domain\r\n"
+                               . "Subject: test$i\r\n"
+                               . "\r\n"
+                               . "$i: this is a test message, please 
ignore\r\n";
+               } else {
+                       $envelope["from"]= "f...@anywhere.com";
+                       $envelope["to"]  = "$users...@$domain";
+                       $envelope["subject"] = "Test msg $i";
+               
+                       $part1["type"] = TYPEMULTIPART;
+                       $part1["subtype"] = "mixed";
+                       
+                       $part2["type"] = TYPETEXT;
+                       $part2["subtype"] = "plain";
+                       $part2["description"] = "imap_mail_compose() function";
+                       $part2["contents.data"] = "message 
1:xxxxxxxxxxxxxxxxxxxxxxxxxx";
+                       
+                       $part3["type"] = TYPETEXT;
+                       $part3["subtype"] = "plain";
+                       $part3["description"] = "Example";
+                       $part3["contents.data"] = "message 
2:yyyyyyyyyyyyyyyyyyyyyyyyyy";
+                       
+                       $part4["type"] = TYPETEXT;
+                       $part4["subtype"] = "plain";
+                       $part4["description"] = "Return Values";
+                       $part4["contents.data"] = "message 
3:zzzzzzzzzzzzzzzzzzzzzzzzzz";
+                       
+                       $body[1] = $part1;
+                       $body[2] = $part2;
+                       $body[3] = $part3;
+                       $body[4] = $part4;
+                       
+                       $msg = imap_mail_compose($envelope, $body);
+               }
+       
+               imap_append($imap_stream, $mailbox, $msg);
+       }
+}
+
+/**
+ * Get the mailbox name from a mailbox decription, i.e strip off server 
details.  
+ *
+ * @param string mailbox complete mailbox name 
+ * @return mailbox name 
+ */
+function get_mailbox_name($mailbox){
+
+       if (preg_match('/\{.*?\}(.*)/', $mailbox, $match) != 1) {
+               echo "Unrecpognized mailbox name\n";
+               return false;
+       }
+
+       return $match[1];
+}
+
+?>
\ No newline at end of file
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/ezmlm_hash_error.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/ezmlm_hash_error.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/ezmlm_hash_error.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/ezmlm_hash_error.phpt       Fri Jan 23 
17:12:14 2009
@@ -0,0 +1,66 @@
+--TEST--
+Test ezmlm_hash() function : error conditions
+--FILE--
+<?php
+/* Prototype  : int ezmlm_hash  ( string $addr  )
+ * Description: Calculate the hash value needed by EZMLM.
+ * Source code: ext/standard/mail.c
+ */
+
+echo "*** Testing ezmlm_hash() : error conditions ***\n";
+
+echo "\n-- Testing ezmlm_hash() function with fewer than expected no. of 
arguments --\n";
+var_dump( ezmlm_hash() );
+
+echo "\n-- Testing ezmlm_hash() function with more than expected no. of 
arguments --\n";
+$extra_arg = 10;
+var_dump( ezmlm_hash("webmas...@something.com", $extra_arg) );
+
+echo "\n-- Testing ezmlm_hash() function with invalid input - ARRAY --\n";
+$array_arg = array(1,2,3,4);
+$extra_arg = 10;
+var_dump( ezmlm_hash($array_arg) );
+
+echo "\n-- Testing ezmlm_hash() function with invalid input - OBJECT without 
'cast_object' method --\n";
+class sample  {
+}
+
+$obj_arg = new sample();
+var_dump( ezmlm_hash($obj_arg) );
+
+echo "\n-- Testing ezmlm_hash() function with invalid input - RESOURCE --\n";
+$file_handle = fopen(__FILE__, "r");
+$extra_arg = 10;
+var_dump( ezmlm_hash($file_handle) );
+fclose($file_handle); 
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing ezmlm_hash() : error conditions ***
+
+-- Testing ezmlm_hash() function with fewer than expected no. of arguments --
+
+Warning: ezmlm_hash() expects exactly 1 parameter, 0 given in %s on line %d
+NULL
+
+-- Testing ezmlm_hash() function with more than expected no. of arguments --
+
+Warning: ezmlm_hash() expects exactly 1 parameter, 2 given in %s on line %d
+NULL
+
+-- Testing ezmlm_hash() function with invalid input - ARRAY --
+
+Warning: ezmlm_hash() expects parameter 1 to be binary string, array given in 
%s on line %d
+NULL
+
+-- Testing ezmlm_hash() function with invalid input - OBJECT without 
'cast_object' method --
+
+Warning: ezmlm_hash() expects parameter 1 to be binary string, object given in 
%s on line %d
+NULL
+
+-- Testing ezmlm_hash() function with invalid input - RESOURCE --
+
+Warning: ezmlm_hash() expects parameter 1 to be binary string, resource given 
in %s on line %d
+NULL
+===DONE===
\ No newline at end of file
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_error.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_error.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/mail_error.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_error.phpt     Fri Jan 23 17:12:14 2009
@@ -0,0 +1,44 @@
+--TEST--
+Test mail() function : error conditions 
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing mail() : error conditions ***\n";
+
+
+//Test mail with one more than the expected number of arguments
+echo "\n-- Testing mail() function with more than expected no. of arguments 
--\n";
+$to = 'string_val';
+$subject = 'string_val';
+$message = 'string_val';
+$additional_headers = 'string_val';
+$additional_parameters = 'string_val';
+$extra_arg = 10;
+var_dump( mail($to, $subject, $message, $additional_headers, 
$additional_parameters, $extra_arg) );
+
+// Testing mail with one less than the expected number of arguments
+echo "\n-- Testing mail() function with less than expected no. of arguments 
--\n";
+$to = 'string_val';
+$subject = 'string_val';
+var_dump( mail($to, $subject) );
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing mail() : error conditions ***
+
+-- Testing mail() function with more than expected no. of arguments --
+
+Warning: mail() expects at most 5 parameters, 6 given in %s on line %d
+NULL
+
+-- Testing mail() function with less than expected no. of arguments --
+
+Warning: mail() expects at least 3 parameters, 2 given in %s on line %d
+NULL
+===DONE===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_basic3.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_basic3.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/mail_basic3.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_basic3.phpt    Fri Jan 23 17:12:14 2009
@@ -0,0 +1,35 @@
+--TEST--
+Test mail() function : basic functionality 
+--INI--
+sendmail_path="exit -1"
+--SKIPIF--
+<?php
+if(substr(PHP_OS, 0, 3) == "WIN")
+  die("skip Won't run on Windows");
+?>
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing mail() : basic functionality ***\n";
+
+
+// Initialise all required variables
+$to = 'u...@company.com';
+$subject = 'Test Subject';
+$message = 'A Message';
+
+
+echo "-- failure --\n";
+var_dump( mail($to, $subject, $message) );
+?>
+===DONE===
+--EXPECT--
+*** Testing mail() : basic functionality ***
+-- failure --
+bool(false)
+===DONE===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_basic4.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_basic4.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/mail_basic4.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:16 2009
+++ php-src/ext/standard/tests/mail/mail_basic4.phpt    Fri Jan 23 17:12:15 2009
@@ -0,0 +1,36 @@
+--TEST--
+Test mail() function : basic functionality 
+--INI--
+sendmail_path="exit -2"
+--SKIPIF--
+<?php
+if(substr(PHP_OS, 0, 3) == "WIN")
+  die("skip Won't run on Windows");
+?>
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing mail() : basic functionality ***\n";
+
+
+// Initialise all required variables
+$to = 'u...@company.com';
+$subject = 'Test Subject';
+$message = 'A Message';
+
+
+echo "-- failure --\n";
+
+var_dump( mail($to, $subject, $message) );
+?>
+===DONE===
+--EXPECT--
+*** Testing mail() : basic functionality ***
+-- failure --
+bool(false)
+===DONE===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_variation1.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_variation1.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/mail_variation1.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:17 2009
+++ php-src/ext/standard/tests/mail/mail_variation1.phpt        Fri Jan 23 
17:12:15 2009
@@ -0,0 +1,30 @@
+--TEST--
+Test mail() function : variation invalid program for sendmail
+--INI--
+sendmail_path=rubbish 2>/dev/null
+--SKIPIF--
+<?php
+if(substr(PHP_OS, 0, 3) == "WIN")
+  die("skip Won't run on Windows");
+?>
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing mail() : variation ***\n";
+
+// Initialise all required variables
+$to = 'u...@company.com';
+$subject = 'Test Subject';
+$message = 'A Message';
+var_dump( mail($to, $subject, $message) );
+?>
+===DONE===
+--EXPECT--
+*** Testing mail() : variation ***
+bool(false)
+===DONE===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/ezmlm_hash_variation1.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/ezmlm_hash_variation1.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/ezmlm_hash_variation1.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:17 2009
+++ php-src/ext/standard/tests/mail/ezmlm_hash_variation1.phpt  Fri Jan 23 
17:12:15 2009
@@ -0,0 +1,193 @@
+--TEST--
+Test explode() function : usage variations - test values for $delimiter 
argument
+--FILE--
+<?php
+
+/* Prototype  : array explode  ( string $delimiter  , string $string  [, int 
$limit  ] )
+ * Description: Split a string by string.
+ * Source code: ext/standard/string.c
+*/
+
+echo "*** Testing explode() function: with unexpected inputs for 'delimiter' 
argument ***\n";
+
+//get an unset variable
+$unset_var = 'string_val';
+unset($unset_var);
+
+//defining a class
+class sample  {
+  public function __toString() {
+    return "sample object";
+  } 
+}
+
+//getting the resource
+$file_handle = fopen(__FILE__, "r");
+
+// array with different values for $delimeter
+$delimeters =  array (
+
+  // integer values
+  0,
+  1,
+  255,
+  256,
+  PHP_INT_MAX,
+  -PHP_INT_MAX,
+
+  // float values
+  10.5,
+  -20.5,
+  10.1234567e10,
+
+  // array values
+  array(),
+  array(0),
+  array(1, 2),
+
+  // boolean values
+  true,
+  false,
+  TRUE,
+  FALSE,
+
+  // null values
+  NULL,
+  null,
+
+  // objects
+  new sample(),
+
+  // resource
+  $file_handle,
+
+  // undefined variable
+  @$undefined_var,
+
+  // unset variable
+  @$unset_var
+);
+
+// loop through with each element of the $delimeters array to test explode() 
function
+$count = 1;
+$string = "piece1 piece2 piece3 piece4 piece5 piece6";
+$limit = 5;
+foreach($delimeters as $delimeter) {
+  echo "-- Iteration $count --\n";
+  var_dump( explode($delimeter, $string, $limit) );
+  $count ++;
+}
+
+fclose($file_handle);  //closing the file handle
+
+?>
+===Done===
+--EXPECTF--
+*** Testing explode() function: with unexpected inputs for 'delimiter' 
argument ***
+-- Iteration 1 --
+array(1) {
+  [0]=>
+  unicode(41) "piece1 piece2 piece3 piece4 piece5 piece6"
+}
+-- Iteration 2 --
+array(2) {
+  [0]=>
+  unicode(5) "piece"
+  [1]=>
+  unicode(35) " piece2 piece3 piece4 piece5 piece6"
+}
+-- Iteration 3 --
+array(1) {
+  [0]=>
+  unicode(41) "piece1 piece2 piece3 piece4 piece5 piece6"
+}
+-- Iteration 4 --
+array(1) {
+  [0]=>
+  unicode(41) "piece1 piece2 piece3 piece4 piece5 piece6"
+}
+-- Iteration 5 --
+array(1) {
+  [0]=>
+  unicode(41) "piece1 piece2 piece3 piece4 piece5 piece6"
+}
+-- Iteration 6 --
+array(1) {
+  [0]=>
+  unicode(41) "piece1 piece2 piece3 piece4 piece5 piece6"
+}
+-- Iteration 7 --
+array(1) {
+  [0]=>
+  unicode(41) "piece1 piece2 piece3 piece4 piece5 piece6"
+}
+-- Iteration 8 --
+array(1) {
+  [0]=>
+  unicode(41) "piece1 piece2 piece3 piece4 piece5 piece6"
+}
+-- Iteration 9 --
+array(1) {
+  [0]=>
+  unicode(41) "piece1 piece2 piece3 piece4 piece5 piece6"
+}
+-- Iteration 10 --
+
+Warning: explode() expects parameter 1 to be string (Unicode or binary), array 
given in %s on line %d
+NULL
+-- Iteration 11 --
+
+Warning: explode() expects parameter 1 to be string (Unicode or binary), array 
given in %s on line %d
+NULL
+-- Iteration 12 --
+
+Warning: explode() expects parameter 1 to be string (Unicode or binary), array 
given in %s on line %d
+NULL
+-- Iteration 13 --
+array(2) {
+  [0]=>
+  unicode(5) "piece"
+  [1]=>
+  unicode(35) " piece2 piece3 piece4 piece5 piece6"
+}
+-- Iteration 14 --
+
+Warning: explode(): Empty delimiter in %s on line %d
+bool(false)
+-- Iteration 15 --
+array(2) {
+  [0]=>
+  unicode(5) "piece"
+  [1]=>
+  unicode(35) " piece2 piece3 piece4 piece5 piece6"
+}
+-- Iteration 16 --
+
+Warning: explode(): Empty delimiter in %s on line %d
+bool(false)
+-- Iteration 17 --
+
+Warning: explode(): Empty delimiter in %s on line %d
+bool(false)
+-- Iteration 18 --
+
+Warning: explode(): Empty delimiter in %s on line %d
+bool(false)
+-- Iteration 19 --
+array(1) {
+  [0]=>
+  unicode(41) "piece1 piece2 piece3 piece4 piece5 piece6"
+}
+-- Iteration 20 --
+
+Warning: explode() expects parameter 1 to be string (Unicode or binary), 
resource given in %s on line %d
+NULL
+-- Iteration 21 --
+
+Warning: explode(): Empty delimiter in %s on line %d
+bool(false)
+-- Iteration 22 --
+
+Warning: explode(): Empty delimiter in %s on line %d
+bool(false)
+===Done===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/ezmlm_hash_basic.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/ezmlm_hash_basic.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/ezmlm_hash_basic.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:17 2009
+++ php-src/ext/standard/tests/mail/ezmlm_hash_basic.phpt       Fri Jan 23 
17:12:15 2009
@@ -0,0 +1,25 @@
+--TEST--
+Test ezmlm_hash() function : basic functionality 
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int ezmlm_hash  ( string $addr  )
+ * Description: Calculate the hash value needed by EZMLM.
+ * Source code: ext/standard/mail.c
+ */
+
+echo "*** Testing ezmlm_hash() : basic functionality ***\n";
+
+var_dump(ezmlm_hash(b"webmas...@somewhere.com"));
+var_dump(ezmlm_hash(b"f...@somewhere.com"));
+
+?>
+===Done===
+--EXPECT--
+*** Testing ezmlm_hash() : basic functionality ***
+int(1)
+int(7)
+===Done===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_variation_alt2-win32.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_variation_alt2-win32.phpt
diff -u /dev/null 
php-src/ext/standard/tests/mail/mail_variation_alt2-win32.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:17 2009
+++ php-src/ext/standard/tests/mail/mail_variation_alt2-win32.phpt      Fri Jan 
23 17:12:15 2009
@@ -0,0 +1,92 @@
+--TEST--
+Test mail() function : basic functionality 
+--SKIPIF--
+<?php 
+if( substr(PHP_OS, 0, 3) != 'WIN' ) {
+   die('skip...Windows only test');
+}
+
+require_once(dirname(__FILE__).'/mail_skipif.inc');
+?>
+--INI--
+max_execution_time = 120
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+error_reporting(E_ALL & ~E_STRICT);
+ini_set("SMTP", "localplace");
+ini_set("smtp_port", 25);
+ini_set("sendmail_from", "u...@company.com");
+
+echo "*** Testing mail() : basic functionality ***\n";
+require_once(dirname(__FILE__).'/mail_include.inc');
+$subject_prefix = "!**PHPT**!";
+
+$to = "$username";
+$subject = "$subject_prefix: Basic PHPT test for mail() function";
+$message = <<<HERE
+Description
+bool mail ( string \$to , string \$subject , string \$message [, string 
\$additional_headers [, string \$additional_parameters]] )
+Send an email message
+HERE;
+
+$res = mail($to, $subject, $message);
+
+if ($res !== true) {
+       exit("TEST COMPLETED : Unable to send test email\n"); 
+} else {
+       echo "Msg sent OK\n";
+}
+
+// Search for email message on the mail server using imap.
+$imap_stream = imap_open($default_mailbox, $username, $password);
+if ($imap_stream === false) {
+       echo "Cannot connect to IMAP server $server: " . imap_last_error() . 
"\n";
+       return false;
+}      
+
+$found = false;
+$repeat_count = 20; // we will repeat a max of 20 times 
+while (!$found && $repeat_count > 0) {
+
+       // sleep for a while to allow msg to be delivered
+       sleep(1);
+
+       $current_msg_count = imap_check($imap_stream)->Nmsgs;
+
+       // Iterate over recent msgs to find the one we sent above
+       for ($i = 1; $i <= $current_msg_count; $i++) {
+               // get hdr details
+               $hdr = imap_headerinfo($imap_stream, $i);  
+
+               if (substr($hdr->Subject, 0 , strlen($subject_prefix)) == 
$subject_prefix) {
+                       echo "Id of msg just sent is $i\n"; 
+                       echo ".. delete it\n"; 
+                       imap_delete($imap_stream, $i);
+                       $found = true;
+                       break; 
+               }
+       }
+       
+       $repeat_count -= 1;
+}
+
+if (!$found) { 
+       echo "TEST FAILED: email not delivered\n"; 
+} else {
+       echo "TEST PASSED: Msgs sent and deleted OK\n";
+}
+
+imap_close($imap_stream, CL_EXPUNGE);
+?>
+===Done===
+--EXPECTF--
+*** Testing mail() : basic functionality ***
+
+Warning: mail(): Failed to connect to mailserver at "localplace" port 25, 
verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in %s on 
line %d
+TEST COMPLETED : Unable to send test email
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/ezmlm_hash_basic_64bit.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/ezmlm_hash_basic_64bit.phpt
diff -u /dev/null 
php-src/ext/standard/tests/mail/ezmlm_hash_basic_64bit.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:17 2009
+++ php-src/ext/standard/tests/mail/ezmlm_hash_basic_64bit.phpt Fri Jan 23 
17:12:15 2009
@@ -0,0 +1,25 @@
+--TEST--
+Test ezmlm_hash() function : basic functionality 
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int ezmlm_hash  ( string $addr  )
+ * Description: Calculate the hash value needed by EZMLM.
+ * Source code: ext/standard/mail.c
+ */
+
+echo "*** Testing ezmlm_hash() : basic functionality ***\n";
+
+var_dump(ezmlm_hash(b"webmas...@somewhere.com"));
+var_dump(ezmlm_hash(b"f...@somewhere.com"));
+
+?>
+===Done===
+--EXPECT--
+*** Testing ezmlm_hash() : basic functionality ***
+int(27)
+int(48)
+===Done===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_basic_alt2-win32.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_basic_alt2-win32.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/mail_basic_alt2-win32.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:17 2009
+++ php-src/ext/standard/tests/mail/mail_basic_alt2-win32.phpt  Fri Jan 23 
17:12:15 2009
@@ -0,0 +1,93 @@
+--TEST--
+Test mail() function : basic functionality 
+--SKIPIF--
+<?php 
+if( substr(PHP_OS, 0, 3) != 'WIN' ) {
+   die('skip...Windows only test');
+}
+
+require_once(dirname(__FILE__).'/mail_skipif.inc');
+?>
+--INI--
+max_execution_time = 120
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+error_reporting(E_ALL & ~E_STRICT);
+
+echo "*** Testing mail() : basic functionality ***\n";
+require_once(dirname(__FILE__).'/mail_include.inc');
+$subject_prefix = "!**PHPT**!";
+
+$to = "$username";
+$subject = "$subject_prefix: Basic PHPT test for mail() function";
+$message = <<<HERE
+Description
+bool mail ( string \$to , string \$subject , string \$message [, string 
\$additional_headers [, string \$additional_parameters]] )
+Send an email message
+HERE;
+
+$extra_headers = "from: u...@company.com";
+
+$res = mail($to, $subject, $message, $extra_headers);
+
+if ($res !== true) {
+       exit("TEST FAILED : Unable to send test email\n"); 
+} else {
+       echo "Msg sent OK\n";
+}
+
+// Search for email message on the mail server using imap.
+$imap_stream = imap_open($default_mailbox, $username, $password);
+if ($imap_stream === false) {
+       echo "Cannot connect to IMAP server $server: " . imap_last_error() . 
"\n";
+       return false;
+}      
+
+$found = false;
+$repeat_count = 20; // we will repeat a max of 20 times 
+while (!$found && $repeat_count > 0) {
+
+       // sleep for a while to allow msg to be delivered
+       sleep(1);
+
+       $current_msg_count = imap_check($imap_stream)->Nmsgs;
+
+       // Iterate over recent msgs to find the one we sent above
+       for ($i = 1; $i <= $current_msg_count; $i++) {
+               // get hdr details
+               $hdr = imap_headerinfo($imap_stream, $i);  
+
+               if (substr($hdr->Subject, 0 , strlen($subject_prefix)) == 
$subject_prefix) {
+                       echo "Id of msg just sent is $i\n"; 
+                       echo ".. delete it\n"; 
+                       imap_delete($imap_stream, $i);
+                       $found = true;
+                       break; 
+               }
+       }
+       
+       $repeat_count -= 1;
+}
+
+if (!$found) { 
+       echo "TEST FAILED: email not delivered\n"; 
+} else {
+       echo "TEST PASSED: Msgs sent and deleted OK\n";
+}
+
+imap_close($imap_stream, CL_EXPUNGE);
+?>
+===Done===
+--EXPECTF--
+*** Testing mail() : basic functionality ***
+Msg sent OK
+Id of msg just sent is %d
+.. delete it
+TEST PASSED: Msgs sent and deleted OK
+===Done===
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/mail/mail_basic2.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/mail/mail_basic2.phpt
diff -u /dev/null php-src/ext/standard/tests/mail/mail_basic2.phpt:1.2
--- /dev/null   Fri Jan 23 17:12:17 2009
+++ php-src/ext/standard/tests/mail/mail_basic2.phpt    Fri Jan 23 17:12:15 2009
@@ -0,0 +1,43 @@
+--TEST--
+Test mail() function : basic functionality 
+--INI--
+sendmail_path=echo --- > mailBasic2.out
+--SKIPIF--
+<?php
+if(substr(PHP_OS, 0, 3) == "WIN")
+  die("skip Won't run on Windows");
+?>
+--FILE--
+<?php
+/* Prototype  : int mail(string to, string subject, string message [, string 
additional_headers [, string additional_parameters]])
+ * Description: Send an email message 
+ * Source code: ext/standard/mail.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing mail() : basic functionality ***\n";
+
+
+// Initialise all required variables
+$to = 'u...@company.com';
+$subject = 'Test Subject';
+$message = 'A Message';
+$additional_headers = 'KHeaders';
+$additional_parameters = "Extras";
+$outFile = "mailBasic2.out";
+...@unlink($outFile);
+
+echo "-- extra parameters --\n";
+// Calling mail() with all possible arguments
+var_dump( mail($to, $subject, $message, $additional_headers, 
$additional_parameters) );
+sleep(1);
+echo file_get_contents($outFile);
+//unlink($outFile);
+?>
+===DONE===
+--EXPECT--
+*** Testing mail() : basic functionality ***
+-- extra parameters --
+bool(true)
+--- Extras
+===DONE===

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to