3 use RT::Interface::REST;
5 use RT::Test tests => 25;
7 my ( $baseurl, $m ) = RT::Test->started_ok;
8 for my $queue_name (qw/foo bar/) {
10 my $queue = RT::Test->load_or_create_queue( Name => $queue_name );
11 ok( $queue, "created queue $queue_name" );
12 my $cf = RT::Test->load_or_create_custom_field(
17 ok( $cf->id, "created cf test for queue $queue_name " . $cf->id );
20 "$baseurl/REST/1.0/ticket/new",
28 my $text = $m->content;
29 my @lines = $text =~ m{.*}g;
30 shift @lines; # header
32 # cfs aren't in the default ticket form
33 push @lines, "CF.{test}: baz";
35 $text = join "\n", @lines;
37 ok( $text =~ s/Subject:\s*$/Subject: test cf/m,
38 "successfully replaced subject" );
39 ok( $text =~ s/Queue: General\s*$/Queue: $queue_name/m,
40 "successfully replaced Queue" );
43 "$baseurl/REST/1.0/ticket/edit",
49 Content_Type => 'form-data'
52 my ($id) = $m->content =~ /Ticket (\d+) created/;
53 ok( $id, "got ticket #$id" );
55 my $ticket = RT::Ticket->new( RT->SystemUser );
57 is( $ticket->id, $id, "loaded the REST-created ticket" );
58 is( $ticket->Subject, "test cf", "subject successfully set" );
59 is( $ticket->Queue, $queue->id, "queue successfully set" );
60 is( $ticket->FirstCustomFieldValue("test"), "baz", "cf successfully set" );
63 "$baseurl/REST/1.0/ticket/show",
72 like( $text, qr/^CF\.\{test\}: baz\s*$/m, 'cf value in rest show' );
74 $text =~ s{.*}{}; # remove header
75 $text =~ s!CF\.\{test\}: baz!CF.{test}: newbaz!;
77 "$baseurl/REST/1.0/ticket/edit",
83 Content_Type => 'form-data'
85 $m->content =~ /Ticket ($id) updated/;
86 is( $ticket->FirstCustomFieldValue("test"), "newbaz", "cf successfully updated" );