rt 4.2.15
[freeside.git] / rt / t / web / ticket_modify_people.t
1 use strict;
2 use warnings;
3
4 use RT::Test tests => undef;
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      => 'root (Enoch Root)',
41         url_regex => qr!/User/Summary\.html!,
42     ),
43     'contains link to user summary page'
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(
58     RT::Test->add_rights( { Principal => $user, Right => ['ShowConfigTab'] }, ),
59     'added ShowConfigTab right',
60 );
61
62 $m->reload;
63 ok(
64     $m->find_link(
65         text      => 'root (Enoch Root)',
66         url_regex => qr!/User/Summary\.html!,
67     ),
68     'still contains link to user summary page'
69 );
70
71 ok(
72     !$m->find_link(
73         text      => 'group_foo',
74         url_regex => qr!/Admin/Groups/Modify\.html!,
75     ),
76     'still no link to modify group'
77 );
78
79 ok(
80     RT::Test->add_rights( { Principal => $user, Right => ['AdminGroup'] }, ),
81     'added AdminGroup right'
82 );
83
84 $m->reload;
85 ok(
86     $m->find_link(
87         text      => 'group_foo',
88         url_regex => qr!/Admin/Groups/Modify\.html!,
89     ),
90     'got link to modify group'
91 );
92
93 $m->submit_form_ok({
94     with_fields => {
95         WatcherTypeEmail1    => 'Cc',
96         WatcherAddressEmail1 => '"Foo Bar" <foo@example.com>',
97     },
98     button => 'SubmitTicket',
99 }, "Added email with phrase as watcher");
100
101 my $foo = RT::Test->load_or_create_user( EmailAddress => 'foo@example.com' );
102 is $foo->RealName, "Foo Bar", "RealName matches";
103
104 undef $m;
105 done_testing;
106
107 # TODO test Add|Delete people
108