summaryrefslogtreecommitdiff
path: root/rt/t/web/ticket_modify_people.t
diff options
context:
space:
mode:
Diffstat (limited to 'rt/t/web/ticket_modify_people.t')
-rw-r--r--rt/t/web/ticket_modify_people.t113
1 files changed, 113 insertions, 0 deletions
diff --git a/rt/t/web/ticket_modify_people.t b/rt/t/web/ticket_modify_people.t
new file mode 100644
index 000000000..750be3f2c
--- /dev/null
+++ b/rt/t/web/ticket_modify_people.t
@@ -0,0 +1,113 @@
+use strict;
+use warnings;
+
+use RT::Test tests => 23;
+
+my $root = RT::Test->load_or_create_user( Name => 'root' );
+my $group_foo = RT::Group->new($RT::SystemUser);
+my ( $ret, $msg ) = $group_foo->CreateUserDefinedGroup(
+ Name => 'group_foo',
+ Description => 'group_foo',
+);
+ok( $ret, 'created group_foo' );
+
+my $ticket = RT::Test->create_ticket(
+ Subject => 'test modify people',
+ Queue => 'General',
+ Requestor => $root->id,
+ Cc => $group_foo->id,
+);
+
+my $user = RT::Test->load_or_create_user(
+ Name => 'user',
+ Password => 'password',
+);
+ok $user && $user->id, 'loaded or created user';
+
+ok(
+ RT::Test->set_rights(
+ { Principal => $user, Right => [qw(SeeQueue ShowTicket ModifyTicket)] },
+ ),
+ 'set rights'
+);
+
+my ( $url, $m ) = RT::Test->started_ok;
+ok( $m->login( 'user', 'password' ), 'logged in' );
+$m->get_ok( $url . "/Ticket/ModifyPeople.html?id=" . $ticket->id );
+
+ok(
+ !$m->find_link(
+ text => 'Enoch Root',
+ url_regex => qr!/Admin/Users/Modify\.html!,
+ ),
+ 'no link to modify user'
+);
+$m->content_contains('Enoch Root', 'still has the user name' );
+
+ok(
+ !$m->find_link(
+ text => 'group_foo',
+ url_regex => qr!/Admin/Groups/Modify\.html!,
+ ),
+ 'no link to modify group'
+);
+
+$m->content_contains('group_foo', 'still has the group name' );
+
+ok( RT::Test->add_rights( { Principal => $user, Right => ['AdminUsers'] }, ),
+ 'added AdminUsers right' );
+$m->reload;
+ok(
+ !$m->find_link(
+ text => 'Enoch Root',
+ url_regex => qr!/Admin/Users/Modify\.html!,
+ ),
+ 'still no link to modify user'
+);
+ok(
+ !$m->find_link(
+ text => 'group_foo',
+ url_regex => qr!/Admin/Groups/Modify\.html!,
+ ),
+ 'still no link to modify group'
+);
+
+ok(
+ RT::Test->add_rights( { Principal => $user, Right => ['ShowConfigTab'] }, ),
+ 'added ShowConfigTab right',
+);
+
+$m->reload;
+ok(
+ $m->find_link(
+ text => 'Enoch Root',
+ url_regex => qr!/Admin/Users/Modify\.html!,
+ ),
+ 'got link to modify user'
+);
+
+ok(
+ !$m->find_link(
+ text => 'group_foo',
+ url_regex => qr!/Admin/Groups/Modify\.html!,
+ ),
+ 'still no link to modify group'
+);
+
+ok(
+ RT::Test->add_rights( { Principal => $user, Right => ['AdminGroup'] }, ),
+ 'added AdminGroup right'
+);
+
+$m->reload;
+ok(
+ $m->find_link(
+ text => 'group_foo',
+ url_regex => qr!/Admin/Groups/Modify\.html!,
+ ),
+ 'got link to modify group'
+);
+
+
+# TODO test Add|Delete people
+