first pass RT4 merge, RT#13852
[freeside.git] / rt / t / web / ticket_owner_issues_16656.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4
5 use RT::Test tests => 19;
6
7 my $queue = RT::Test->load_or_create_queue( Name => 'Test' );
8 ok $queue && $queue->id, 'loaded or created queue';
9
10 my $user_a = RT::Test->load_or_create_user(
11     Name            => 'user_a',
12     EmailAddress    => 'user_a@example.com',
13     Password        => 'password',
14 );
15 ok $user_a && $user_a->id, 'loaded or created user';
16
17 RT->Config->Set( AutocompleteOwners => 0 );
18 my ($baseurl, $agent_root) = RT::Test->started_ok;
19
20 ok( RT::Test->set_rights({
21     Principal   => 'Requestor',
22     Object      => $queue,
23     Right       => [qw(OwnTicket)]
24 }), 'set rights');
25
26 ok $agent_root->login('root', 'password'), 'logged in as user root';
27
28 diag "user_a doesn't show up in create form";
29 {
30     $agent_root->get_ok('/', 'open home page');
31     $agent_root->form_name('CreateTicketInQueue');
32     $agent_root->select( 'Queue', '1' );
33     $agent_root->submit;
34
35     $agent_root->content_contains('Create a new ticket', 'opened create ticket page');
36     my $form = $agent_root->form_name('TicketCreate');
37     my $input = $form->find_input('Owner');
38     is $input->value, RT->Nobody->Id, 'correct owner selected';
39     ok((not scalar grep { $_ == $user_a->Id } $input->possible_values), 'no user_a value in dropdown');
40     $form->value('Requestors', 'user_a@example.com');
41     $agent_root->submit;
42
43     $agent_root->content_like(qr/Ticket \d+ created in queue/i, 'created ticket');
44     my ($id) = ($agent_root->content =~ /Ticket (\d+) created in queue/);
45     ok $id, 'found id of the ticket';
46
47     my $ticket = RT::Ticket->new( RT->SystemUser );
48     $ticket->Load( $id );
49     ok $ticket->id, 'loaded the ticket';
50     is $ticket->Queue, '1', 'correct queue';
51     is $ticket->Owner, RT->Nobody->Id, 'correct owner';
52     is $ticket->RequestorAddresses, 'user_a@example.com', 'correct requestor';
53 }
54
55 diag "user_a doesn't appear in owner list after being made requestor";
56 {
57     $agent_root->get("/Ticket/Modify.html?id=1");
58     my $form = $agent_root->form_name('TicketModify');
59     my $input = $form->find_input('Owner');
60     is $input->value, RT->Nobody->Id, 'correct owner selected';
61     ok((not scalar grep { $_ == $user_a->Id } $input->possible_values), 'no user_a value in dropdown');
62 }
63