From 40bc07333bc586c54b06861e8b1e02db0d59d7d0 Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Thu, 26 Apr 2012 21:39:29 +0200 Subject: [PATCH] Also mark up records of the form 'Removed indication that bug 2 blocks 10'. Signed-off-by: Don Armstrong --- Debbugs/CGI/Bugreport.pm | 3 +++ t/11_blocks.t | 36 +++++++++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/Debbugs/CGI/Bugreport.pm b/Debbugs/CGI/Bugreport.pm index 8589ac9..7cff47f 100644 --- a/Debbugs/CGI/Bugreport.pm +++ b/Debbugs/CGI/Bugreport.pm @@ -339,6 +339,9 @@ sub handle_record{ (\d+(?:,\s+\d+)*(?:\,?\s+and\s+\d+)?)} {$1.(defined $3?$2.bug_links(bug=>$3):'').$4. english_join([map {bug_links(bug=>$_)} (split /\,?\s+(?:and\s+)?/, $5)])}xeo; + $output =~ s{([Aa]dded|[Rr]emoved)( indication that bug )(\d+)( blocks )([\d\s\,]+)} + {$1.$2.(bug_links(bug=>$3)).$4. + english_join([map {bug_links(bug=>$_)} (split /\,?\s+(?:and\s+)?/, $5)])}eo; # Add links to reassigned packages $output =~ s{(Bug reassigned from package \`)([^']+?)((?:'|\&\#39;) to \`)([^']+?)((?:'|\&\#39;))} {$1.q($2).$3.q($4).$5}eo; diff --git a/t/11_blocks.t b/t/11_blocks.t index 553fe25..11c765a 100644 --- a/t/11_blocks.t +++ b/t/11_blocks.t @@ -1,6 +1,6 @@ # -*- mode: cperl;-*- -use Test::More tests => 14; +use Test::More tests => 20; use warnings; use strict; @@ -21,6 +21,7 @@ use File::Basename qw(dirname basename); use lib qw(t/lib); use DebbugsTest qw(:all); use Data::Dumper; +use Test::WWW::Mechanize; # HTTP::Server:::Simple defines a SIG{CHLD} handler that breaks system; undef it here. $SIG{CHLD} = sub {}; @@ -159,3 +160,36 @@ ok(system('sh','-c','find '.$sendmail_dir.q( -type f | xargs grep -q "Subject: P $status = read_bug(bug=>3); ok($status->{blockedby} eq '5','bug 3 is blocked by exactly 5'); + +# Check how this blocked bug is presented on the web interface + +# start up an HTTP::Server::Simple +my $bugreport_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. -T cgi/bugreport.cgi); + $content =~ s/^\s*Content-Type:[^\n]+\n*//si; + print $content; +}; + +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=10', + 'Page received ok'); + +ok($mech->content() =~ qr//i, + 'Title of bug is \'Submitting a bug\''); + +ok($mech->content() =~ qr/Added blocking bug\(s\) of ]+10[^>]+>10<\/a>: ]+2[^>]+>2<\/a>/i, + '\'Added blocking bug(s) of x: y\' received markup'); + +$mech->get_ok('http://localhost:'.$port.'/?bug=2', + 'Page received ok'); + +ok($mech->content() =~ qr/Added indication that bug ]+2[^>]+>2<\/a> blocks ]+10[^>]+>10<\/a>/i, + '\'indication that bug x blocks y\' received markup'); -- 2.39.2