fix ticketing system error on bootstrap of new install
[freeside.git] / rt / t / web / ticket_display.t
1 use strict;
2 use warnings;
3
4 use RT::Test tests => undef;
5
6 my $queue = RT::Test->load_or_create_queue( Name => 'General' );
7
8 my $user = RT::Test->load_or_create_user(
9     Name     => 'user',
10     Password => 'password',
11 );
12
13 my $cf = RT::Test->load_or_create_custom_field( Name => 'test_cf', Queue => $queue->Name, Type => 'FreeformSingle' );
14 my $cf_form_id = 'Object-RT::Ticket--CustomField-'.$cf->Id.'-Value';
15 my $cf_test_value = "some string for test_cf $$";
16
17 my ( $baseurl, $m ) = RT::Test->started_ok;
18 ok(
19     RT::Test->set_rights(
20         { Principal => $user, Right => [qw(SeeQueue CreateTicket)] },
21         { Principal => $user, Object => $queue, Right => [qw(SeeCustomField ModifyCustomField)] }
22     ),
23     'set rights'
24 );
25
26 ok $m->login( 'user', 'password' ), 'logged in as user';
27
28 diag "test ShowTicket right";
29 {
30
31     $m->get_ok( '/Ticket/Create.html?Queue=' . $queue->id,
32         'go to ticket create page' );
33     my $form = $m->form_name('TicketCreate');
34     $m->submit_form( fields => { Subject => 'ticket foo', $cf_form_id => $cf_test_value } );
35
36     my $ticket = RT::Test->last_ticket;
37     ok( $ticket->id, 'ticket is created' );
38     my $id = $ticket->id;
39
40     $m->content_lacks( "Ticket $id created", 'created ticket' );
41     $m->content_contains( "No permission to view newly created ticket #$id",
42         'got no permission msg' );
43     $m->warning_like( qr/No permission to view newly created ticket #$id/,
44         'got no permission warning' );
45
46
47     $m->goto_ticket($id);
48     $m->content_contains( "No permission to view ticket",
49         'got no permission msg' );
50     $m->warning_like( qr/No permission to view ticket/, 'got warning' );
51     $m->title_is('RT Error');
52
53     ok(
54         RT::Test->add_rights(
55             { Principal => $user, Right => [qw(ShowTicket)] },
56         ),
57         'add ShowTicket right'
58     );
59
60     $m->reload;
61
62     $m->content_lacks( "No permission to view ticket", 'no error msg' );
63     $m->title_is( "#$id: ticket foo", 'we can it' );
64     $m->content_contains($cf_test_value, "Custom Field was submitted and saved");
65 }
66
67
68 undef $m;
69 done_testing();