X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=t%2F06_mail_handling.t;h=2f8f452d7983c98431b5f258f7867fbe72506a10;hb=ea162515d6f096215237c46b55f9d5d3e370d02f;hp=8285792260cdbfee8cd45602f6f39ada2b9e8610;hpb=fe8e083e6c7de5eb0e56396511e44f6c9f7bf621;p=debbugs.git diff --git a/t/06_mail_handling.t b/t/06_mail_handling.t index 8285792..2f8f452 100644 --- a/t/06_mail_handling.t +++ b/t/06_mail_handling.t @@ -1,7 +1,7 @@ # -*- mode: cperl;-*- # $Id: 05_mail.t,v 1.1 2005/08/17 21:46:17 don Exp $ -use Test::More tests => 114; +use Test::More tests => 127; use warnings; use strict; @@ -22,28 +22,18 @@ use File::Basename qw(dirname basename); use lib qw(t/lib); use DebbugsTest qw(:all); use Data::Dumper; +use Encode qw(decode encode); # HTTP::Server:::Simple defines a SIG{CHLD} handler that breaks system; undef it here. $SIG{CHLD} = sub {}; -my %config; -eval { - %config = create_debbugs_configuration(debug => exists $ENV{DEBUG}?$ENV{DEBUG}:0); -}; -if ($@) { - BAIL_OUT($@); -} +my %config = create_debbugs_configuration(); + my $sendmail_dir = $config{sendmail_dir}; my $spool_dir = $config{spool_dir}; my $config_dir = $config{config_dir}; -END{ - if ($ENV{DEBUG}) { - diag("spool_dir: $spool_dir\n"); - diag("config_dir: $config_dir\n"); - diag("sendmail_dir: $sendmail_dir\n"); - } -} + # We're going to use create mime message to create these messages, and # then just send them to receive. @@ -123,6 +113,22 @@ my $status = read_bug(bug=>1); ok($status->{subject} eq 'new title','bug 1 retitled'); ok($status->{severity} eq 'wishlist','bug 1 wishlisted'); +# now check to see if we can close a bug using a psuedoheader done +send_message(to => '1-done@bugs.something', + headers => [To => 'control@bugs.something', + From => 'foo@bugs.something', + Subject => 'Munging a bug', + ], + body => <<'EOF') or fail 'message to control@bugs.something failed'; +Done: Me Developer + +I'm closing this bug for reasons +EOF + +$status = read_bug(bug=>1); +ok($status->{done} eq 'Me Developer '); + + # now we're going to go through and methododically test all of the control commands. my @control_commands = ( @@ -207,6 +213,11 @@ my @control_commands = status_key => 'owner', status_value => 'foo@bar.com', }, + owner_replyto => {command => 'owner', + value => '!', + status_key => 'owner', + status_value => 'foo@bugs.something', + }, noowner => {command => 'noowner', value => '', status_key => 'owner', @@ -258,6 +269,16 @@ my @control_commands = status_key => 'summary', status_value => '', }, + outlook => {command => 'outlook', + value => '5', + status_key => 'outlook', + status_value => 'This is a silly bug', + }, + nooutlook => {command => 'outlook', + value => '', + status_key => 'outlook', + status_value => '', + }, affects => {command => 'affects', value => 'foo', status_key => 'affects', @@ -299,6 +320,11 @@ my @control_commands = status_key => 'keywords', status_value => 'patch', }, + utf8_retitle => {command => 'retitle', + value => 'Thïs is a ütff8 title [♥♡☙☎]', + status_key => 'subject', + status_value => decode("utf8",'Thïs is a ütff8 title [♥♡☙☎]'), + }, ); # In order for the archive/unarchive to work, we have to munge the summary file slightly