RT 4.0.13
[freeside.git] / rt / t / web / offline.t
1 use strict;
2 use warnings;
3
4 use RT::Test tests => 20;
5
6 my ( $url, $m ) = RT::Test->started_ok;
7 ok( $m->login, 'logged in' );
8
9 {
10     my $template = <<EOF;
11 ===Create-Ticket: ticket1
12 Queue: General
13 Subject: test
14 Status: new
15 EOF
16     my $ticket = create_ticket_offline( $m, $template );
17     ok $ticket->id, 'created a ticket with offline tool';
18     is $ticket->QueueObj->Name, 'General', 'correct value';
19     is $ticket->Subject, 'test', 'correct value';
20     is $ticket->Status, 'new', 'correct value';
21 }
22
23 {
24     my $template = <<'EOF';
25 ===Create-Ticket: ticket1
26 Queue: General
27 Subject: test
28 Status: new
29 Requestor: test@example.com
30 EOF
31     my $ticket = create_ticket_offline( $m, $template );
32     ok $ticket->id, 'created a ticket with offline tool';
33     is $ticket->RequestorAddresses, 'test@example.com', 'correct value';
34 }
35
36 {
37     my $group = RT::Group->new(RT->SystemUser);
38     my ($id, $msg) = $group->CreateUserDefinedGroup( Name => 'test' );
39     ok $id, "created a user defined group";
40
41     my $template = <<'EOF';
42 ===Create-Ticket: ticket1
43 Queue: General
44 Subject: test
45 Status: new
46 Requestor: test@example.com
47 RequestorGroup: test
48 EOF
49     my $ticket = create_ticket_offline( $m, $template );
50     ok $ticket->id, 'created a ticket with offline tool';
51     ok grep(
52         { $_->MemberId eq $group->id }
53         @{ $ticket->Requestors->MembersObj->ItemsArrayRef }
54     ), 'correct value' ;
55     is $ticket->RequestorAddresses, 'test@example.com', 'correct value';
56 }
57
58 sub create_ticket_offline {
59     my ($m, $template) = @_;
60
61     $m->get_ok( $url . '/Tools/Offline.html' );
62
63     $m->submit_form(
64         form_name => 'TicketUpdate',
65         fields    => { string => $template },
66         button    => 'UpdateTickets',
67     );
68
69     my $ticket = RT::Ticket->new( RT->SystemUser );
70     $m->content_like( qr/Ticket \d+ created/, 'found ticket created message' )
71         or return $ticket;
72
73     $ticket->Load( $m->content =~ /Ticket (\d+) created/ );
74     return $ticket;
75 }
76
77