use strict; use warnings; use utf8; use RT::Test tests => 22; RT->Config->Set( NotifyActor => 1 ); my $queue = RT::Test->load_or_create_queue( Name => 'General', CorrespondAddress => 'rt-recipient@example.com', CommentAddress => 'rt-recipient@example.com', ); ok $queue && $queue->id, 'loaded or created queue'; my $user = RT::Test->load_or_create_user( Name => 'root', EmailAddress => 'root@localhost', ); ok $user && $user->id, 'loaded or created user'; { my $mail = < Foob! EOF my ($status, $id) = RT::Test->send_via_mailgate($mail); ok $id, "created a ticket"; my @mail = RT::Test->fetch_caught_mails; is scalar @mail, 1, "autoreply"; like $mail[0], qr{^In-Reply-To:\s*$}mi; like $mail[0], qr{^References:\s*}mi; my $ticket = RT::Ticket->new( RT->SystemUser ); $ticket->Load( $id ); ok $ticket->id, "loaded ticket"; ($status, my ($msg)) = $ticket->Correspond( Content => 'boo' ); ok $status, "replied to the ticket"; @mail = RT::Test->fetch_caught_mails; is scalar @mail, 1, "reply"; like $mail[0], qr{^References:\s*$}mi, "no context, so only pseudo header is referenced"; } { my ($ticket) = RT::Test->create_ticket( Queue => $queue->id, Requestor => $user->EmailAddress ); my $id = $ticket->id; ok $id, "created a ticket"; my @mail = RT::Test->fetch_caught_mails; is scalar @mail, 1, "autoreply"; like $mail[0], qr{^References:\s*}mi; } { my $scrip = RT::Scrip->new(RT->SystemUser); my ($status, $msg) = $scrip->Create( Description => "Notify requestor on status change", ScripCondition => 'On Status Change', ScripAction => 'Notify Requestors', Template => 'Transaction', Stage => 'TransactionCreate', Queue => 0, ); ok($status, "Scrip created"); my ($ticket) = RT::Test->create_ticket( Queue => $queue->id, Requestor => $user->EmailAddress, ); my $id = $ticket->id; ok $id, "created a ticket"; RT::Test->fetch_caught_mails; ($status, $msg) = $ticket->SetStatus('open'); ok $status, "changed status"; my @mail = RT::Test->fetch_caught_mails; is scalar @mail, 1, "status change notification"; like $mail[0], qr{^References:\s*}mi; }