mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
Committing include files required for tests. Tests and bug reports to follow.
This commit is contained in:
parent
9983e2689a
commit
f5e46d5b15
25
ext/imap/tests/clean.inc
Normal file
25
ext/imap/tests/clean.inc
Normal file
@ -0,0 +1,25 @@
|
||||
<?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);
|
||||
?>
|
150
ext/imap/tests/imap_include.inc
Normal file
150
ext/imap/tests/imap_include.inc
Normal file
@ -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_user@$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: foo@anywhere.com\r\n"
|
||||
. "To: $users[0]@$domain\r\n"
|
||||
. "Subject: test$i\r\n"
|
||||
. "\r\n"
|
||||
. "$i: this is a test message, please ignore\r\n";
|
||||
} else {
|
||||
$envelope["from"]= "foo@anywhere.com";
|
||||
$envelope["to"] = "$users[0]@$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];
|
||||
}
|
||||
|
||||
?>
|
16
ext/imap/tests/skipif.inc
Normal file
16
ext/imap/tests/skipif.inc
Normal file
@ -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 = 'webmaster@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);
|
||||
?>
|
Loading…
Reference in New Issue
Block a user