X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Ft%2Fweb%2Fticket_modify_people.t;fp=rt%2Ft%2Fweb%2Fticket_modify_people.t;h=750be3f2c5030805f34b5a89b03da79f07e94cd0;hb=33beebf4cb42eba3e1dd868ad5e0af102de961da;hp=0000000000000000000000000000000000000000;hpb=7ac86daf67b0a95153b736d5811f9050363f6553;p=freeside.git 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 +