Annotation of embedaddon/php/ext/imap/tests/imap_include.inc, revision 1.1

1.1     ! misho       1: <?php
        !             2: // Change these to make tests run successfully
        !             3: $server   = '{localhost/norsh}';
        !             4: $default_mailbox = $server . "INBOX";
        !             5: $domain = "something.com";
        !             6: $admin_user = "webmaster"; // a user with admin access 
        !             7: $username = "$admin_user@$domain";
        !             8: $password = 'p4ssw0rd';
        !             9: $users = array("webmaster", "info", "admin", "foo"); // tests require 4 valid userids
        !            10: $mailbox_prefix = "phpttest"; // name used for test mailbox
        !            11: 
        !            12: // record test start time (used by displayOverviewFields())
        !            13: $start_time = time();
        !            14: 
        !            15: // list of fields to expect
        !            16: $mandatory_overview_fields = array(
        !            17:                     'size',
        !            18:                     'uid',
        !            19:                     'msgno',
        !            20:                     'recent',
        !            21:                     'flagged',
        !            22:                     'answered',
        !            23:                     'deleted',
        !            24:                     'seen',
        !            25:                     'draft',
        !            26:                     'udate',
        !            27:                    );
        !            28: 
        !            29: /**
        !            30:  * Display all fields in an element from an imap_fetch_overview() response
        !            31:  *
        !            32:  * Special handling for 'udate', which will vary run-to-run; assumes an IMAP
        !            33:  * server with its clock synced to the current system, which is consistent with
        !            34:  * setup instructions in ext/imap/tests/README
        !            35:  *
        !            36:  * @param array resp element from the return value of imap_fetch_overview()
        !            37:  */
        !            38: function displayOverviewFields($resp, $fields=null) {
        !            39:   global $mandatory_overview_fields;
        !            40:   global $start_time;
        !            41: 
        !            42:   foreach ($fields ? $fields : $mandatory_overview_fields as $mf)
        !            43:   {
        !            44:     $z = $resp->$mf;
        !            45:     if ($mf == 'udate') {
        !            46:       if (($z >= $start_time) && ($z <= time())) {
        !            47:         echo "$mf is OK\n";
        !            48:       } else {
        !            49:         echo "$mf is BAD ($z)\n";
        !            50:       }
        !            51:     } else {
        !            52:       echo "$mf is $z\n";
        !            53:     }
        !            54:   }
        !            55: }
        !            56: 
        !            57: 
        !            58: /**
        !            59:  * Create a test mailbox and populate with msgs 
        !            60:  *
        !            61:  * @param string mailbox_suffix Suffix used to uniquely identify mailboxes
        !            62:  * @param int message_count number of test msgs to be written to new mailbox 
        !            63:  * 
        !            64:  * @return IMAP stream to new mailbox on sucesss; FALSE on failure
        !            65:  */
        !            66: function setup_test_mailbox($mailbox_suffix, $message_count, &$new_mailbox = null, $msg_type = "simple"){
        !            67:        global $server, $default_mailbox, $username, $password;
        !            68:        
        !            69:        // open a stream to default mailbox
        !            70:        $imap_stream = imap_open($default_mailbox, $username, $password);
        !            71: 
        !            72:        if ($imap_stream === false) {
        !            73:                echo "Cannot connect to IMAP server $server: " . imap_last_error() . "\n";
        !            74:                return false;
        !            75:        }       
        !            76:        
        !            77:        echo "Create a temporary mailbox and add " . $message_count .  " msgs\n";
        !            78:        $new_mailbox = create_mailbox($imap_stream, $mailbox_suffix, $message_count, $msg_type);
        !            79:        if ($new_mailbox === false) {
        !            80:           echo "Cant create a temporary mailbox: " . imap_last_error(). "\n";
        !            81:           return false;
        !            82:        }
        !            83:        
        !            84:        echo ".. mailbox '$new_mailbox' created\n";
        !            85:        
        !            86:        // reopen stream to new mailbox
        !            87:        if (imap_reopen($imap_stream, $new_mailbox) === false) {
        !            88:                echo "cant re-open '$new_mailbox' mailbox: " . imap_last_error() . "\n";
        !            89:                return false;
        !            90:        }
        !            91:        
        !            92:        return $imap_stream;
        !            93: }
        !            94: 
        !            95: /**
        !            96:  * Create mailbox and fill with generic emails
        !            97:  *
        !            98:  * @param resource $imap_stream
        !            99:  * @param string $mailbox
        !           100:  */
        !           101: function create_mailbox($imap_stream, $mailbox_suffix, $message_count, $msg_type= "simple"){
        !           102:        global $default_mailbox, $mailbox_prefix;
        !           103:        $mailbox = $default_mailbox . "." . $mailbox_prefix . $mailbox_suffix;
        !           104:        
        !           105:        $mailboxes = imap_getmailboxes($imap_stream, $mailbox, '*');
        !           106:        
        !           107:        // check mailbox does not already exist
        !           108:        if ($mailboxes) {
        !           109:                foreach($mailboxes as $value) {
        !           110:                        if ($value->name == $mailbox) {
        !           111:                                exit ("TEST FAILED : Mailbox '$mailbox' already exists\n");
        !           112:                        }
        !           113:                }
        !           114:        }       
        !           115: 
        !           116:        if (imap_createmailbox($imap_stream, $mailbox) === false) {
        !           117:                return false;
        !           118:        }
        !           119:        
        !           120:        // Add number of test msgs requested
        !           121:        if ($message_count > 0) {
        !           122:                populate_mailbox($imap_stream, $mailbox, $message_count, $msg_type);
        !           123:        }       
        !           124:        
        !           125:        return $mailbox;
        !           126: }
        !           127: 
        !           128: /**
        !           129:  * Populate a mailbox with generic emails
        !           130:  *
        !           131:  * @param resource $imap_stream
        !           132:  * @param string $mailbox
        !           133:  */
        !           134: function populate_mailbox($imap_stream, $mailbox, $message_count, $msg_type = "simple"){
        !           135: 
        !           136:        global $users, $domain;
        !           137: 
        !           138:        for($i = 1; $i <= $message_count; $i++) {
        !           139:                if ($msg_type == "simple") {
        !           140:                        $msg =  "From: foo@anywhere.com\r\n"
        !           141:                                . "To: $users[0]@$domain\r\n"
        !           142:                                . "Subject: test$i\r\n"
        !           143:                                . "\r\n"
        !           144:                                . "$i: this is a test message, please ignore\r\n";
        !           145:                } else {
        !           146:                        $envelope["from"]= "foo@anywhere.com";
        !           147:                        $envelope["to"]  = "$users[0]@$domain";
        !           148:                        $envelope["subject"] = "Test msg $i";
        !           149:                
        !           150:                        $part1["type"] = TYPEMULTIPART;
        !           151:                        $part1["subtype"] = "mixed";
        !           152:                        
        !           153:                        $part2["type"] = TYPETEXT;
        !           154:                        $part2["subtype"] = "plain";
        !           155:                        $part2["description"] = "imap_mail_compose() function";
        !           156:                        $part2["contents.data"] = "message 1:xxxxxxxxxxxxxxxxxxxxxxxxxx";
        !           157:                        
        !           158:                        $part3["type"] = TYPETEXT;
        !           159:                        $part3["subtype"] = "plain";
        !           160:                        $part3["description"] = "Example";
        !           161:                        $part3["contents.data"] = "message 2:yyyyyyyyyyyyyyyyyyyyyyyyyy";
        !           162:                        
        !           163:                        $part4["type"] = TYPETEXT;
        !           164:                        $part4["subtype"] = "plain";
        !           165:                        $part4["description"] = "Return Values";
        !           166:                        $part4["contents.data"] = "message 3:zzzzzzzzzzzzzzzzzzzzzzzzzz";
        !           167:                        
        !           168:                        $body[1] = $part1;
        !           169:                        $body[2] = $part2;
        !           170:                        $body[3] = $part3;
        !           171:                        $body[4] = $part4;
        !           172:                        
        !           173:                        $msg = imap_mail_compose($envelope, $body);
        !           174:                }
        !           175:        
        !           176:                imap_append($imap_stream, $mailbox, $msg);
        !           177:        }
        !           178: }
        !           179: 
        !           180: /**
        !           181:  * Get the mailbox name from a mailbox decription, i.e strip off server details.  
        !           182:  *
        !           183:  * @param string mailbox complete mailbox name 
        !           184:  * @return mailbox name 
        !           185:  */
        !           186: function get_mailbox_name($mailbox){
        !           187: 
        !           188:        if (preg_match('/\{.*?\}(.*)/', $mailbox, $match) != 1) {
        !           189:                echo "Unrecpognized mailbox name\n";
        !           190:                return false;
        !           191:        }
        !           192: 
        !           193:        return $match[1];
        !           194: }
        !           195: 
        !           196: ?>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>