[Rt-commit] r10016 - rtir/branches/2.3-EXPERIMENTAL/t/constituency

ruz at bestpractical.com ruz at bestpractical.com
Wed Dec 19 16:01:49 EST 2007


Author: ruz
Date: Wed Dec 19 16:01:19 2007
New Revision: 10016

Modified:
   rtir/branches/2.3-EXPERIMENTAL/t/constituency/email_outgoing.t

Log:
* add more tests

Modified: rtir/branches/2.3-EXPERIMENTAL/t/constituency/email_outgoing.t
==============================================================================
--- rtir/branches/2.3-EXPERIMENTAL/t/constituency/email_outgoing.t	(original)
+++ rtir/branches/2.3-EXPERIMENTAL/t/constituency/email_outgoing.t	Wed Dec 19 16:01:19 2007
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 20;
+use Test::More tests => 33;
 
 use lib qw(/opt/rt3/local/lib /opt/rt3/lib);
 require RT::Test; import RT::Test;
@@ -28,26 +28,48 @@
 
 RT->Config->Set( '_RTIR_Constituency_default' => 'EDUNET' );
 
-my $queue_ir = RT::Test->load_or_create_queue(
-    Name              => 'Incident Reports',
-    CorrespondAddress => 'reports at example.com',
-    CommentAddress    => 'reports-comment at example.com',
-);
-ok $queue_ir && $queue_ir->id, 'loaded or created queue_ir';
-
-my $queue_ir_edunet = RT::Test->load_or_create_queue(
-    Name              => 'Incident Reports - EDUNET',
-    CorrespondAddress => 'edu-reports at example.com',
-    CommentAddress    => 'edu-reports-comment at example.com',
-);
-ok $queue_ir_edunet && $queue_ir_edunet->id, 'loaded or created queue';
-
-my $queue_ir_govnet = RT::Test->load_or_create_queue(
-    Name              => 'Incident Reports - GOVNET',
-    CorrespondAddress => 'gov-reports at example.com',
-    CommentAddress    => 'gov-reports-comment at example.com',
-);
-ok $queue_ir_govnet && $queue_ir_govnet->id, 'loaded or created queue';
+my ($queue_ir, $queue_ir_edunet, $queue_ir_govnet);
+diag "create or update queues";
+{
+    $queue_ir = RT::Test->load_or_create_queue(
+        Name              => 'Incident Reports',
+        CorrespondAddress => 'reports at example.com',
+        CommentAddress    => 'reports-comment at example.com',
+    );
+    ok $queue_ir && $queue_ir->id, 'loaded or created queue_ir';
+
+    $queue_ir_edunet = RT::Test->load_or_create_queue(
+        Name              => 'Incident Reports - EDUNET',
+        CorrespondAddress => 'edu-reports at example.com',
+        CommentAddress    => 'edu-reports-comment at example.com',
+    );
+    ok $queue_ir_edunet && $queue_ir_edunet->id, 'loaded or created queue';
+
+    $queue_ir_govnet = RT::Test->load_or_create_queue(
+        Name              => 'Incident Reports - GOVNET',
+        CorrespondAddress => 'gov-reports at example.com',
+        CommentAddress    => 'gov-reports-comment at example.com',
+    );
+    ok $queue_ir_govnet && $queue_ir_govnet->id, 'loaded or created queue';
+}
+
+my $eduhandler = RT::Test->load_or_create_user( Name => 'eduhandler', Password => 'eduhandler' );
+ok $eduhandler->id, "Created eduhandler";
+my $govhandler = RT::Test->load_or_create_user( Name => 'govhandler', Password => 'govhandler' );
+ok $govhandler->id, "Created govhandler";
+
+ok( RT::Test->add_rights(
+    { Principal => 'Privileged',
+        Right => [qw(ModifyCustomField SeeCustomField OwnTicket)], },
+    { Principal => $govhandler, Object => $queue_ir,
+        Right => [qw(SeeQueue CreateTicket)] },
+    { Principal => $eduhandler, Object => $queue_ir,
+        Right => [qw(SeeQueue CreateTicket)] },
+    { Principal => $eduhandler, Object => $queue_ir_edunet,
+        Right => [qw(ShowTicket CreateTicket)] },
+    { Principal => $govhandler, Object => $queue_ir_govnet,
+        Right => [qw(ShowTicket CreateTicket)] },
+), 'added rights');
 
 RT::Test->set_mail_catcher;
 
@@ -127,3 +149,33 @@
     ok $from_ok, 'all From addresses are correct';
 }
 
+diag "GOV user creates an IR under EDUNET, check addresses";
+{
+    unlink "t/mailbox";
+
+    $agent->login('govhandler', 'govhandler');
+    my $id = create_ir(
+        $agent,
+        { Subject => "test", Requestors => $rtir_user->EmailAddress },
+        { Constituency => 'EDUNET' },
+    );
+    ok $id, "created ticket $id";
+
+    my $ticket = RT::Ticket->new( $RT::SystemUser );
+    $ticket->Load( $id );
+    ok $ticket->id, 'loaded the ticket';
+    is $ticket->FirstCustomFieldValue('_RTIR_Constituency'), 'EDUNET', 'correct value';
+
+    my @mail = RT::Test->fetch_caught_mails;
+    ok @mail, 'there are some outgoing emails';
+    
+    my $from_ok = 1;
+    foreach my $mail ( @mail ) {
+        next if $mail =~ /^From:\s*.*?edu-reports\@example\.com/mi;
+        diag $mail;
+        $from_ok = 0;
+        last;
+    }
+    ok $from_ok, 'all From addresses are correct';
+}
+


More information about the Rt-commit mailing list