import rt 3.8.7
[freeside.git] / rt / t / api / condition-reject.t
1 #
2 # Check that the "On Reject" scrip condition exists and is working
3 #
4
5 use strict;
6 use warnings;
7 use RT;
8 use RT::Test tests => 7;
9
10
11 {
12
13 my $q = RT::Queue->new($RT::SystemUser);
14 $q->Create(Name =>'rejectTest');
15
16 ok($q->Id, "Created a scriptest queue");
17
18 my $s1 = RT::Scrip->new($RT::SystemUser);
19 my ($val, $msg) =$s1->Create( Queue => $q->Id,
20              ScripAction => 'User Defined',
21              ScripCondition => 'On reject',
22              CustomIsApplicableCode => '',
23              CustomPrepareCode => 'return 1',
24              CustomCommitCode => '
25                     $self->TicketObj->SetPriority($self->TicketObj->Priority+1);
26                 return(1);
27             ',
28              Template => 'Blank'
29     );
30 ok($val,$msg);
31
32 my $ticket = RT::Ticket->new($RT::SystemUser);
33 my ($tv,$ttv,$tm) = $ticket->Create(Queue => $q->Id,
34                                     Subject => "hair on fire",
35                                     InitialPriority => '20'
36                                     );
37 ok($tv, $tm);
38 ok($ticket->SetStatus('rejected'), "Status set to \"rejected\"");
39 is ($ticket->Priority , '21', "Condition is true, scrip triggered");
40 ok($ticket->SetStatus('open'), "Status set to \"open\"");
41 is ($ticket->Priority , '21', "Condition is false, scrip skipped");
42
43 }
44
45 1;