first pass RT4 merge, RT#13852
[freeside.git] / rt / t / web / ticket_display.t
1 use strict;
2 use warnings;
3
4 use RT::Test tests => 18;
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 ( $baseurl, $m ) = RT::Test->started_ok;
14 ok(
15     RT::Test->set_rights(
16         { Principal => $user, Right => [qw(SeeQueue CreateTicket)] },
17     ),
18     'set rights'
19 );
20
21 ok $m->login( 'user', 'password' ), 'logged in as user';
22
23 diag "test ShowTicket right";
24 {
25
26     $m->get_ok( '/Ticket/Create.html?Queue=' . $queue->id,
27         'go to ticket create page' );
28     my $form = $m->form_name('TicketCreate');
29     $m->submit_form( fields => { Subject => 'ticket foo' } );
30
31     my $ticket = RT::Test->last_ticket;
32     ok( $ticket->id, 'ticket is created' );
33     my $id = $ticket->id;
34
35     $m->content_lacks( "Ticket $id created", 'created ticket' );
36     $m->content_contains( "No permission to view newly created ticket #$id",
37         'got no permission msg' );
38     $m->warning_like( qr/No permission to view newly created ticket #$id/,
39         'got no permission warning' );
40
41
42     $m->goto_ticket($id);
43     $m->content_contains( "No permission to view ticket",
44         'got no permission msg' );
45     $m->warning_like( qr/No permission to view ticket/, 'got warning' );
46     $m->title_is('RT Error');
47
48     ok(
49         RT::Test->add_rights(
50             { Principal => $user, Right => [qw(ShowTicket)] },
51         ),
52         'add ShowTicket right'
53     );
54
55     $m->reload;
56
57     $m->content_lacks( "No permission to view ticket", 'no error msg' );
58     $m->title_is( "#$id: ticket foo", 'we can it' );
59 }
60
61
62 # TODO more /Ticket/Display.html tests here
63