diff options
Diffstat (limited to 'rt/t/api/scrip.t')
-rw-r--r-- | rt/t/api/scrip.t | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/rt/t/api/scrip.t b/rt/t/api/scrip.t new file mode 100644 index 000000000..9d97e7344 --- /dev/null +++ b/rt/t/api/scrip.t @@ -0,0 +1,121 @@ + +use strict; +use warnings; +use RT; +use RT::Test tests => 25; + + +{ + +ok (require RT::Scrip); + + +my $q = RT::Queue->new($RT::SystemUser); +$q->Create(Name => 'ScripTest'); +ok($q->Id, "Created a scriptest queue"); + +my $s1 = RT::Scrip->new($RT::SystemUser); +my ($val, $msg) =$s1->Create( Queue => $q->Id, + ScripAction => 'User Defined', + ScripCondition => 'User Defined', + CustomIsApplicableCode => 'if ($self->TicketObj->Subject =~ /fire/) { return (1);} else { return(0)}', + CustomPrepareCode => 'return 1', + CustomCommitCode => '$self->TicketObj->SetPriority("87");', + Template => 'Blank' + ); +ok($val,$msg); + +my $ticket = RT::Ticket->new($RT::SystemUser); +my ($tv,$ttv,$tm) = $ticket->Create(Queue => $q->Id, + Subject => "hair on fire", + ); +ok($tv, $tm); + +is ($ticket->Priority , '87', "Ticket priority is set right"); + + +my $ticket2 = RT::Ticket->new($RT::SystemUser); +my ($t2v,$t2tv,$t2m) = $ticket2->Create(Queue => $q->Id, + Subject => "hair in water", + ); +ok($t2v, $t2m); + +isnt ($ticket2->Priority , '87', "Ticket priority is set right"); + + + +} + + +{ + my $scrip = RT::Scrip->new($RT::SystemUser); + my ( $val, $msg ) = $scrip->Create( + ScripCondition => 'On Comment', + ScripAction => 'Notify Owner', + ); + ok( !$val, "missing template: $msg" ); + ( $val, $msg ) = $scrip->Create( + ScripCondition => 'On Comment', + ScripAction => 'Notify Owner', + Template => 'not exists', + ); + ok( !$val, "invalid template: $msg" ); + + ( $val, $msg ) = $scrip->Create( + ScripAction => 'Notify Owner', + Template => 'Blank', + ); + ok( !$val, "missing condition: $msg" ); + ( $val, $msg ) = $scrip->Create( + ScripCondition => 'not exists', + ScripAction => 'Notify Owner', + Template => 'Blank', + ); + ok( !$val, "invalid condition: $msg" ); + + ( $val, $msg ) = $scrip->Create( + ScripCondition => 'On Comment', + Template => 'Blank', + ); + ok( !$val, "missing action: $msg" ); + ( $val, $msg ) = $scrip->Create( + ScripCondition => 'On Comment', + ScripAction => 'not exists', + Template => 'Blank', + ); + ok( !$val, "invalid action: $msg" ); + + ( $val, $msg ) = $scrip->Create( + ScripAction => 'Notify Owner', + ScripCondition => 'On Comment', + Template => 'Blank', + ); + ok( $val, "created scrip: $msg" ); + $scrip->Load($val); + ok( $scrip->id, 'loaded scrip ' . $scrip->id ); + + ( $val, $msg ) = $scrip->SetScripCondition(); + ok( !$val, "missing condition: $msg" ); + ( $val, $msg ) = $scrip->SetScripCondition('not exists'); + ok( !$val, "invalid condition: $msg" ); + ( $val, $msg ) = $scrip->SetScripCondition('On Correspond'); + ok( $val, "updated condition to 'On Correspond': $msg" ); + + ( $val, $msg ) = $scrip->SetScripAction(); + ok( !$val, "missing action: $msg" ); + ( $val, $msg ) = $scrip->SetScripAction('not exists'); + ok( !$val, "invalid action: $msg" ); + ( $val, $msg ) = $scrip->SetScripAction('Notify AdminCcs'); + ok( $val, "updated action to 'Notify AdminCcs': $msg" ); + + ( $val, $msg ) = $scrip->SetTemplate(); + ok( !$val, "missing template $msg" ); + ( $val, $msg ) = $scrip->SetTemplate('not exists'); + ok( !$val, "invalid template $msg" ); + ( $val, $msg ) = $scrip->SetTemplate('Forward'); + ok( $val, "updated template to 'Forward': $msg" ); + + ok( $scrip->Delete, 'delete the scrip' ); +} + +1; |