diff options
Diffstat (limited to 'rt/t/web/ticket_txn_content.t')
-rw-r--r-- | rt/t/web/ticket_txn_content.t | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/rt/t/web/ticket_txn_content.t b/rt/t/web/ticket_txn_content.t new file mode 100644 index 0000000..1c1056a --- /dev/null +++ b/rt/t/web/ticket_txn_content.t @@ -0,0 +1,79 @@ +#!/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 ); +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"; +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 $qid = $queue->Load('General'); +ok( $qid, "Loaded General queue" ); + +RT::Test->set_mail_catcher; +RT::Test->clean_caught_mails; + +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->form_name('TicketCreate'); + $m->field( 'Subject', 'with plain attachment' ); + $m->field( 'Attach', $plain_file ); + $m->field( 'Content', 'this is main content' ); + $m->field( 'ContentType', $type ) unless $type eq 'text/plain'; + $m->submit; + is( $m->status, 200, "request successful" ); + $m->content_like( qr/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' ); + + 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->back; + + $m->follow_link_ok( { text => 'Reply' }, "reply to the ticket" ); + $m->form_name('TicketUpdate'); + $m->field( 'Attach', $plain_file ); + $m->click('AddMoreAttach'); + is( $m->status, 200, "request successful" ); + + $m->form_name('TicketUpdate'); + $m->field( 'Attach', $html_file ); + # add UpdateCc so we can get email record + $m->field( 'UpdateCc', 'rt-test@example.com' ); + $m->field( 'UpdateContent', 'this is main reply content' ); + $m->field( 'UpdateContentType', $type ) unless $type eq 'text/plain'; + $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' ); + + ( $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->back; +} |