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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
use strict;
use warnings;
use RT::Interface::REST;
use RT::Test tests => 25;
my ( $baseurl, $m ) = RT::Test->started_ok;
for my $queue_name (qw/foo bar/) {
my $queue = RT::Test->load_or_create_queue( Name => $queue_name );
ok( $queue, "created queue $queue_name" );
my $cf = RT::Test->load_or_create_custom_field(
Name => 'test',
Type => 'Freeform',
Queue => $queue_name,
);
ok( $cf->id, "created cf test for queue $queue_name " . $cf->id );
$m->post(
"$baseurl/REST/1.0/ticket/new",
[
user => 'root',
pass => 'password',
format => 'l',
]
);
my $text = $m->content;
my @lines = $text =~ m{.*}g;
shift @lines; # header
# cfs aren't in the default ticket form
push @lines, "CF.{test}: baz";
$text = join "\n", @lines;
ok( $text =~ s/Subject:\s*$/Subject: test cf/m,
"successfully replaced subject" );
ok( $text =~ s/Queue: General\s*$/Queue: $queue_name/m,
"successfully replaced Queue" );
$m->post(
"$baseurl/REST/1.0/ticket/edit",
[
user => 'root',
pass => 'password',
content => $text,
],
Content_Type => 'form-data'
);
my ($id) = $m->content =~ /Ticket (\d+) created/;
ok( $id, "got ticket #$id" );
my $ticket = RT::Ticket->new( RT->SystemUser );
$ticket->Load($id);
is( $ticket->id, $id, "loaded the REST-created ticket" );
is( $ticket->Subject, "test cf", "subject successfully set" );
is( $ticket->Queue, $queue->id, "queue successfully set" );
is( $ticket->FirstCustomFieldValue("test"), "baz", "cf successfully set" );
$m->post(
"$baseurl/REST/1.0/ticket/show",
[
user => 'root',
pass => 'password',
format => 'l',
id => "ticket/$id",
]
);
$text = $m->content;
like( $text, qr/^CF\.\{test\}: baz\s*$/m, 'cf value in rest show' );
$text =~ s{.*}{}; # remove header
$text =~ s!CF\.\{test\}: baz!CF.{test}: newbaz!;
$m->post(
"$baseurl/REST/1.0/ticket/edit",
[
user => 'root',
pass => 'password',
content => $text,
],
Content_Type => 'form-data'
);
$m->content =~ /Ticket ($id) updated/;
is( $ticket->FirstCustomFieldValue("test"), "newbaz", "cf successfully updated" );
}
|