X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=t%2Flib%2FDebbugsTest.pm;fp=t%2Flib%2FDebbugsTest.pm;h=152bd5801fa3afcb80451422835d86f7a9cf477f;hb=b1252b6797aa6a79d00a32165fb2fa8fb1bd9318;hp=c18e86eea278396b5ad6c006712281abe6466a8a;hpb=06424150844462de782ae112aa26c80dfa8d9401;p=debbugs.git diff --git a/t/lib/DebbugsTest.pm b/t/lib/DebbugsTest.pm index c18e86e..152bd58 100644 --- a/t/lib/DebbugsTest.pm +++ b/t/lib/DebbugsTest.pm @@ -24,6 +24,8 @@ use strict; use vars qw($VERSION $DEBUG %EXPORT_TAGS @EXPORT_OK @EXPORT); use base qw(Exporter); +use v5.10; + use IO::File; use File::Temp qw(tempdir); use Cwd qw(getcwd); @@ -41,7 +43,8 @@ BEGIN{ $DEBUG = 0 unless defined $DEBUG; @EXPORT = (); - %EXPORT_TAGS = (configuration => [qw(dirsize create_debbugs_configuration send_message)], + %EXPORT_TAGS = (configuration => [qw(dirsize create_debbugs_configuration send_message), + qw(submit_bug run_processall)], mail => [qw(num_messages_sent)], control => [qw(test_control_commands)], database => [qw(create_postgresql_database update_postgresql_database)] @@ -207,11 +210,15 @@ sub send_message{ } # now we should run processall to see if the message gets processed if ($param{run_processall}) { - system('scripts/processall') == 0 or die "processall failed"; + run_processall(); } return 1; } +sub run_processall { + system('scripts/processall') == 0 or die "processall failed"; +} + =item test_control_commands test_control_commands(\%config, @@ -285,6 +292,49 @@ EOF } } +sub submit_bug { + state $spec = + {subject => {type => SCALAR, + default => 'Submitting a bug', + }, + body => {type => SCALAR, + default => 'This is a silly bug', + }, + submitter => {type => SCALAR, + default => 'foo@bugs.something', + }, + pseudoheaders => {type => HASHREF, + default => sub {{}}, + }, + package => {type => SCALAR, + default => 'foo', + }, + run_processall => {type => SCALAR, + default => 0, + }, + }; + my %param = + validate_with(params => \@_, + spec => $spec); + my $body = 'Package: '.$param{package}."\n"; + foreach my $key (keys %{$param{pseudoheaders}}) { + for my $val (ref($param{pseudoheaders}{$key}) ? + @{$param{pseudoheaders}{$key}} : + $param{pseudoheaders}{$key}) { + $body .= $key. ': '.$val."\n"; + } + } + $body .="\n".$param{body}; + send_message(to => 'submit@bugs.something', + headers => [To => 'submit@bugs.something', + From => $param{submitter}, + Subject => $param{subject}, + ], + run_processall => $param{run_processall}, + body => $body + ); +} + { package DebbugsTest::HTTPServer;