X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Ft%2Fweb%2Fticket_txn_content.t;h=db47512185a4c734e4aae35163d0207f4ad36b14;hb=6587f6ba7d047ddc1686c080090afe7d53365bd4;hp=1c1056a3e3249bb46ccddc5265caecccbada2aed;hpb=47153aae5c2fc00316654e7277fccd45f72ff611;p=freeside.git diff --git a/rt/t/web/ticket_txn_content.t b/rt/t/web/ticket_txn_content.t index 1c1056a3e..db4751218 100644 --- a/rt/t/web/ticket_txn_content.t +++ b/rt/t/web/ticket_txn_content.t @@ -1,37 +1,48 @@ #!/usr/bin/perl -w use strict; -use RT::Test tests => 37; -use File::Temp 'tempfile'; -use File::Spec; -my ( $plain_fh, $plain_file ) = - tempfile( 'rttestXXXXXX', SUFFIX => '.txt', UNLINK => 1, TMPDIR => 1 ); +use RT::Test tests => 63; +my $plain_file = File::Spec->catfile( RT::Test->temp_directory, 'attachment.txt' ); +open my $plain_fh, '>', $plain_file or die $!; print $plain_fh "this is plain content"; close $plain_fh; my $plain_name = (File::Spec->splitpath($plain_file))[-1]; -my ( $html_fh, $html_file ) = - tempfile( 'rttestXXXXXX', SUFFIX => '.html', UNLINK => 1, TMPDIR => 1 ); -print $html_fh "this is html content"; +my $html_file = File::Spec->catfile( RT::Test->temp_directory, 'attachment.html' ); +open my $html_fh, '>', $html_file or die $!; +print $html_fh "this is plain content"; close $html_fh; my $html_name = (File::Spec->splitpath($html_file))[-1]; my ($baseurl, $m) = RT::Test->started_ok; ok $m->login, 'logged in'; -my $queue = RT::Queue->new($RT::Nobody); +my $queue = RT::Queue->new(RT->Nobody); my $qid = $queue->Load('General'); ok( $qid, "Loaded General queue" ); -RT::Test->set_mail_catcher; RT::Test->clean_caught_mails; +sub follow_parent_with_headers_link { + my $m = shift; + my $link = $m->find_link(@_)->url; + $link =~ s{/(\d+)$}{"/" . ($1-1)}e; # get the parent attach + $m->get_ok($baseurl . $link); +} + +sub follow_with_headers_link { + my $m = shift; + my $link = $m->find_link(@_)->url; + $link =~ s{/\d+/(\d+)/.+$}{/WithHeaders/$1}; # frob into a with headers url + $m->get_ok($baseurl . $link); +} + for my $type ( 'text/plain', 'text/html' ) { $m->form_name('CreateTicketInQueue'); $m->field( 'Queue', $qid ); $m->submit; is( $m->status, 200, "request successful" ); - $m->content_like( qr/Create a new ticket/, 'ticket create page' ); + $m->content_contains('Create a new ticket', 'ticket create page' ); $m->form_name('TicketCreate'); $m->field( 'Subject', 'with plain attachment' ); @@ -40,16 +51,26 @@ for my $type ( 'text/plain', 'text/html' ) { $m->field( 'ContentType', $type ) unless $type eq 'text/plain'; $m->submit; is( $m->status, 200, "request successful" ); - $m->content_like( qr/with plain attachment/, + $m->content_contains('with plain attachment', 'we have subject on the page' ); - $m->content_like( qr/this is main content/, 'main content' ); - $m->content_like( qr/Download $plain_name/, 'download plain file link' ); + $m->content_contains('this is main content', 'main content' ); + $m->content_contains("Download $plain_name", 'download plain file link' ); + + # Check for Message-IDs + follow_parent_with_headers_link($m, text => 'with headers', n => 1); + $m->content_like(qr/^Message-ID:/im, 'create content has one Message-ID'); + $m->content_unlike(qr/^Message-ID:.+?Message-ID:/ism, 'but not two Message-IDs'); + $m->back; + + follow_with_headers_link($m, text => "Download $plain_name", n => 1); + $m->content_unlike(qr/^Message-ID:/im, 'attachment lacks a Message-ID'); + $m->back; my ( $mail ) = RT::Test->fetch_caught_mails; like( $mail, qr/this is main content/, 'email contains main content' ); # check the email link in page too $m->follow_link_ok( { text => 'Show' }, 'show the email outgoing' ); - $m->content_like( qr/this is main content/, 'email contains main content'); + $m->content_contains('this is main content', 'email contains main content'); $m->back; $m->follow_link_ok( { text => 'Reply' }, "reply to the ticket" ); @@ -67,13 +88,27 @@ for my $type ( 'text/plain', 'text/html' ) { $m->click('SubmitTicket'); is( $m->status, 200, "request successful" ); - $m->content_like( qr/this is main reply content/, 'main reply content' ); - $m->content_like( qr/Download $html_name/, 'download html file link' ); + $m->content_contains("this is main reply content", 'main reply content' ); + $m->content_contains("Download $html_name", 'download html file link' ); + + # Check for Message-IDs + follow_parent_with_headers_link($m, text => 'with headers', n => 2); + $m->content_like(qr/^Message-ID:/im, 'correspondence has one Message-ID'); + $m->content_unlike(qr/^Message-ID:.+?Message-ID:/ism, 'but not two Message-IDs'); + $m->back; + + follow_with_headers_link($m, text => "Download $plain_name", n => 2); + $m->content_unlike(qr/^Message-ID:/im, 'text/plain attach lacks a Message-ID'); + $m->back; + + follow_with_headers_link($m, text => "Download $html_name", n => 1); + $m->content_unlike(qr/^Message-ID:/im, 'text/html attach lacks a Message-ID'); + $m->back; ( $mail ) = RT::Test->fetch_caught_mails; like( $mail, qr/this is main reply content/, 'email contains main reply content' ); # check the email link in page too $m->follow_link_ok( { text => 'Show', n => 2 }, 'show the email outgoing' ); - $m->content_like( qr/this is main reply content/, 'email contains main reply content'); + $m->content_contains("this is main reply content", 'email contains main reply content'); $m->back; }