]> git.donarmstrong.com Git - debbugs.git/commitdiff
* Test pkgreport as well
authorDon Armstrong <don@volo>
Mon, 19 Feb 2007 08:08:14 +0000 (00:08 -0800)
committerDon Armstrong <don@volo>
Mon, 19 Feb 2007 08:08:14 +0000 (00:08 -0800)
 * Fix a few spelling mistakes in bugreport.t
 * Check the title of bugreport.cgi as well

t/07_bugreport.t
t/08_pkgreport.t [new file with mode: 0644]

index ea33725e6d6967351b0d91ee2339aae6c5daf643..dedd4458e0b342fed92ba16f97472dd0e7285e4f 100644 (file)
@@ -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 => 2;
+
+use Test::More tests => 3;
 
 use warnings;
 use strict;
@@ -22,7 +22,6 @@ use Test::WWW::Mechanize;
 # The test functions are placed here to make things easier
 use lib qw(t/lib);
 use DebbugsTest qw(:all);
-use Data::Dumper;
 
 my %config;
 eval {
@@ -45,7 +44,7 @@ END{
 send_message(to=>'submit@bugs.something',
             headers => [To   => 'submit@bugs.something',
                         From => 'foo@bugs.something',
-                        Subject => 'Submiting a bug',
+                        Subject => 'Submitting a bug',
                        ],
             body => <<EOF) or fail('Unable to send message');
 Package: foo
@@ -61,7 +60,9 @@ EOF
 my $bugreport_cgi_handler = sub {
      # I do not understand why this is necessary.
      $ENV{DEBBUGS_CONFIG_FILE} = "$config{config_dir}/debbugs_config";
-     print qx(perl -I. -T cgi/bugreport.cgi);
+     my $content = qx(perl -I. -T cgi/bugreport.cgi);
+     $content =~ s/^\s*Content-Type:[^\n]+\n*//si;
+     print $content;
 };
 
 my $port = 11342;
@@ -69,7 +70,11 @@ my $port = 11342;
 ok(DebbugsTest::HTTPServer::fork_and_create_webserver($bugreport_cgi_handler,$port),
    'forked HTTP::Server::Simple successfully');
 
-
 my $mech = Test::WWW::Mechanize->new();
 
-$mech->get_ok('http://localhost:'.$port.'/?bug=1');
+$mech->get_ok('http://localhost:'.$port.'/?bug=1',
+             'Page received ok');
+ok($mech->content() =~ qr/\<title\>\#1\s+\-\s+Submitting a bug/i,
+   'Title of bug is submitting a bug');
+
+# Other tests for bugs in the page should be added here eventually
diff --git a/t/08_pkgreport.t b/t/08_pkgreport.t
new file mode 100644 (file)
index 0000000..f834c75
--- /dev/null
@@ -0,0 +1,85 @@
+# -*- mode: cperl;-*-
+
+
+use Test::More tests => 3;
+
+use warnings;
+use strict;
+
+# Here, we're going to shoot messages through a set of things that can
+# happen.
+
+# First, we're going to send mesages to receive.
+# To do so, we'll first send a message to submit,
+# then send messages to the newly created bugnumber.
+
+use IO::File;
+use File::Temp qw(tempdir);
+use Cwd qw(getcwd);
+use Debbugs::MIME qw(create_mime_message);
+use File::Basename qw(dirname basename);
+use Test::WWW::Mechanize;
+# The test functions are placed here to make things easier
+use lib qw(t/lib);
+use DebbugsTest qw(:all);
+
+my %config;
+eval {
+     %config = create_debbugs_configuration(debug => exists $ENV{DEBUG}?$ENV{DEBUG}:0);
+};
+if ($@) {
+     BAIL_OUT($@);
+}
+
+# Output some debugging information if there's an error
+END{
+     if ($ENV{DEBUG}) {
+         foreach my $key (keys %config) {
+              diag("$key: $config{$key}\n");
+         }
+     }
+}
+
+# create a bug
+send_message(to=>'submit@bugs.something',
+            headers => [To   => 'submit@bugs.something',
+                        From => 'foo@bugs.something',
+                        Subject => 'Submitting a bug',
+                       ],
+            body => <<EOF) or fail('Unable to send message');
+Package: foo
+Severity: normal
+
+This is a silly bug
+EOF
+
+
+# test bugreport.cgi
+
+# start up an HTTP::Server::Simple
+my $pkgreport_cgi_handler = sub {
+     # I do not understand why this is necessary.
+     $ENV{DEBBUGS_CONFIG_FILE} = "$config{config_dir}/debbugs_config";
+     my $content = qx(perl -I. -I./cgi -T cgi/pkgreport.cgi);
+     # Strip off the Content-Type: stuff
+     $content =~ s/^\s*Content-Type:[^\n]+\n*//si;
+     print $content;
+};
+
+my $port = 11342;
+
+ok(DebbugsTest::HTTPServer::fork_and_create_webserver($pkgreport_cgi_handler,$port),
+   'forked HTTP::Server::Simple successfully');
+
+
+my $mech = Test::WWW::Mechanize->new(autocheck => 1);
+
+$mech->get_ok('http://localhost:'.$port.'/?pkg=foo');
+
+# I'd like to use $mech->title_ok(), but I'm not sure why it doesn't
+# work.
+ok($mech->content()=~ qr/package foo/i,
+   'Package title seems ok',
+  );
+
+# Test more stuff here