1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
use strict;
use warnings;
use RT::Test tests => undef;
my $template = RT::Template->new( RT->SystemUser );
my ($ok, $msg) = $template->Create(
Queue => 0,
Name => 'test',
Type => 'Simple',
Content => <<'.',
===Create-Ticket: testing
Queue: General
Subject: duplicate: { $Tickets{TOP}->Subject }
.
);
ok $ok, $msg;
my $ticket = RT::Test->create_ticket(
Queue => 'General',
Subject => 'a ticket',
);
ok $ticket->id, "created ticket";
for my $type (qw(Simple Perl)) {
if ($template->Type ne $type) {
my ($ok, $msg) = $template->SetType($type);
ok $ok, $msg;
}
require RT::Action::CreateTickets;
my $action = RT::Action::CreateTickets->new(
CurrentUser => RT->SystemUser,
TemplateObj => $template,
TicketObj => $ticket,
);
$action->{TransactionObj} = $ticket->Transactions->First;
ok $action->Prepare, 'prepares';
ok $action->Commit, 'commits';
my $new_ticket = RT::Test->last_ticket;
ok $new_ticket->id > $ticket->id, 'new ticket';
if ($type eq 'Perl') {
is $new_ticket->Subject, 'duplicate: a ticket', 'interpolated';
isnt $new_ticket->Subject, 'duplicate: { $Tickets{TOP}->Subject }', 'interpolated';
} else {
isnt $new_ticket->Subject, 'duplicate: a ticket', 'not interpolated';
is $new_ticket->Subject, 'duplicate: { $Tickets{TOP}->Subject }', 'not interpolated';
}
}
done_testing;
|