merge RT 4.2.11 and Header changes to disable RT javascript, RT#34237
[freeside.git] / rt / t / web / ticket_modify_people.t
1 use strict;
2 use warnings;
3
4 use RT::Test tests => 25;
5
6 my $root = RT::Test->load_or_create_user( Name => 'root' );
7 my $group_foo = RT::Group->new($RT::SystemUser);
8 my ( $ret, $msg ) = $group_foo->CreateUserDefinedGroup(
9     Name        => 'group_foo',
10     Description => 'group_foo',
11 );
12 ok( $ret, 'created group_foo' );
13
14 my $ticket = RT::Test->create_ticket(
15     Subject   => 'test modify people',
16     Queue     => 'General',
17     Requestor => $root->id,
18     Cc        => $group_foo->id,
19 );
20
21 my $user = RT::Test->load_or_create_user(
22     Name     => 'user',
23     Password => 'password',
24 );
25 ok $user && $user->id, 'loaded or created user';
26
27 ok(
28     RT::Test->set_rights(
29         { Principal => $user, Right => [qw(SeeQueue ShowTicket ModifyTicket)] },
30     ),
31     'set rights'
32 );
33
34 my ( $url, $m ) = RT::Test->started_ok;
35 ok( $m->login( 'user', 'password' ), 'logged in' );
36 $m->get_ok( $url . "/Ticket/ModifyPeople.html?id=" . $ticket->id );
37
38 ok(
39     !$m->find_link(
40         text      => 'Enoch Root',
41         url_regex => qr!/Admin/Users/Modify\.html!,
42     ),
43     'no link to modify user'
44 );
45 $m->content_contains('Enoch Root', 'still has the user name' );
46
47 ok(
48     !$m->find_link(
49         text      => 'group_foo',
50         url_regex => qr!/Admin/Groups/Modify\.html!,
51     ),
52     'no link to modify group'
53 );
54
55 $m->content_contains('group_foo', 'still has the group name' );
56
57 ok( RT::Test->add_rights( { Principal => $user, Right => ['AdminUsers'] }, ),
58     'added AdminUsers right' );
59 $m->reload;
60 ok(
61     !$m->find_link(
62         text      => 'Enoch Root',
63         url_regex => qr!/Admin/Users/Modify\.html!,
64     ),
65     'still no link to modify user'
66 );
67 ok(
68     !$m->find_link(
69         text      => 'group_foo',
70         url_regex => qr!/Admin/Groups/Modify\.html!,
71     ),
72     'still no link to modify group'
73 );
74
75 ok(
76     RT::Test->add_rights( { Principal => $user, Right => ['ShowConfigTab'] }, ),
77     'added ShowConfigTab right',
78 );
79
80 $m->reload;
81 ok(
82     $m->find_link(
83         text      => 'root (Enoch Root)',
84         url_regex => qr!/Admin/Users/Modify\.html!,
85     ),
86     'got link to modify user'
87 );
88
89 ok(
90     !$m->find_link(
91         text      => 'group_foo',
92         url_regex => qr!/Admin/Groups/Modify\.html!,
93     ),
94     'still no link to modify group'
95 );
96
97 ok(
98     RT::Test->add_rights( { Principal => $user, Right => ['AdminGroup'] }, ),
99     'added AdminGroup right'
100 );
101
102 $m->reload;
103 ok(
104     $m->find_link(
105         text      => 'group_foo',
106         url_regex => qr!/Admin/Groups/Modify\.html!,
107     ),
108     'got link to modify group'
109 );
110
111 $m->submit_form_ok({
112     with_fields => {
113         WatcherTypeEmail1    => 'Cc',
114         WatcherAddressEmail1 => '"Foo Bar" <foo@example.com>',
115     },
116     button => 'SubmitTicket',
117 }, "Added email with phrase as watcher");
118
119 my $foo = RT::Test->load_or_create_user( EmailAddress => 'foo@example.com' );
120 is $foo->RealName, "Foo Bar", "RealName matches";
121
122 # TODO test Add|Delete people
123