zoe             Fri Nov 28 17:40:14 2008 UTC

  Added files:                 (Branch: PHP_5_3)
    /php-src/ext/imap/tests     skipif.inc imap_include.inc clean.inc 
  Log:
  Committing include files required for tests. Tests and bug reports to follow.
  

http://cvs.php.net/viewvc.cgi/php-src/ext/imap/tests/skipif.inc?view=markup&rev=1.1
Index: php-src/ext/imap/tests/skipif.inc
+++ php-src/ext/imap/tests/skipif.inc
<?php
extension_loaded('imap') or die('skip imap extension not available in this 
build');
 
// Change these to make tests run successfully
$mailbox  = '{localhost}';
$username = '[EMAIL PROTECTED]';
$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);
?>
http://cvs.php.net/viewvc.cgi/php-src/ext/imap/tests/imap_include.inc?view=markup&rev=1.1
Index: php-src/ext/imap/tests/imap_include.inc
+++ php-src/ext/imap/tests/imap_include.inc
<?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 = "[EMAIL PROTECTED]";
$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: [EMAIL PROTECTED]"
                                . "To: [EMAIL PROTECTED]"
                                . "Subject: test$i\r\n"
                                . "\r\n"
                                . "$i: this is a test message, please 
ignore\r\n";
                } else {
                        $envelope["from"]= "[EMAIL PROTECTED]";
                        $envelope["to"]  = "[EMAIL PROTECTED]";
                        $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];
}

?>
http://cvs.php.net/viewvc.cgi/php-src/ext/imap/tests/clean.inc?view=markup&rev=1.1
Index: php-src/ext/imap/tests/clean.inc
+++ php-src/ext/imap/tests/clean.inc
<?php
include_once(dirname(__FILE__) . '/imap_include.inc');

$imap_stream = imap_open($default_mailbox, $username, $password);

// delete all msgs in default mailbox, i.e INBOX
$check = imap_check($imap_stream);
for ($i = 1; $i <= $check->Nmsgs; $i++) {
        imap_delete($imap_stream, $i); 
}

$mailboxes = imap_getmailboxes($imap_stream, $server, '*');

foreach($mailboxes as $value) {
        // Only delete mailboxes with our prefix
        if (preg_match('/\{.*?\}INBOX\.(.+)/', $value->name, $match) == 1) {
                if (strlen($match[1]) >= strlen($mailbox_prefix) 
                && substr_compare($match[1], $mailbox_prefix, 0, 
strlen($mailbox_prefix)) == 0) {
                        imap_deletemailbox($imap_stream, $value->name);
                }
        }       
}

imap_close($imap_stream, CL_EXPUNGE); 
?>


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

Reply via email to