[Rt-commit] r5046 - in rt/branches/3.7-EXPERIMENTAL: .

ruz at bestpractical.com ruz at bestpractical.com
Mon Apr 17 19:44:45 EDT 2006


Author: ruz
Date: Mon Apr 17 19:44:43 2006
New Revision: 5046

Added:
   rt/branches/3.7-EXPERIMENTAL/lib/t/regression/07-acl.t
      - copied unchanged from r4680, /rt/branches/3.7-EXPERIMENTAL/lib/t/regression/07acl.t
   rt/branches/3.7-EXPERIMENTAL/lib/t/regression/07-rights.t
      - copied unchanged from r4680, /rt/branches/3.7-EXPERIMENTAL/lib/t/regression/07rights.t
   rt/branches/3.7-EXPERIMENTAL/lib/t/regression/07-rights_web.t
Modified:
   rt/branches/3.7-EXPERIMENTAL/   (props changed)

Log:
 r2394 at cubic-pc:  cubic | 2006-04-18 03:51:49 +0400
 * tests for basic rights management via web
 * rename test files


Added: rt/branches/3.7-EXPERIMENTAL/lib/t/regression/07-rights_web.t
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/lib/t/regression/07-rights_web.t	Mon Apr 17 19:44:43 2006
@@ -0,0 +1,67 @@
+#!/usr/bin/perl -w
+use strict;
+
+use Test::More tests => 12;
+BEGIN {
+    use RT;
+    RT::LoadConfig;
+    RT::Init;
+}
+use constant BaseURL => "http://localhost:".RT->Config->Get('WebPort').RT->Config->Get('WebPath')."/";
+
+use Test::WWW::Mechanize;
+my $m = Test::WWW::Mechanize->new;
+isa_ok($m, 'Test::WWW::Mechanize');
+
+$m->get( BaseURL."?user=root;pass=password" );
+$m->content_like(qr/Logout/, 'we did log in');
+$m->follow_link_ok({ text => 'Configuration' });
+$m->follow_link_ok({ text => 'Global' });
+$m->follow_link_ok({ text => 'Group Rights' });
+
+
+sub get_rights {
+    my $agent = shift;
+    my $principal_id = shift;
+    my $object = shift;
+    $agent->form_number(3);
+    my @inputs = $agent->current_form->find_input("RevokeRight-$principal_id-$object");
+    my @rights = sort grep $_, map $_->possible_values, grep $_, @inputs;
+    return @rights;
+};
+
+my $everyone = RT::Group->new( $RT::SystemUser );
+$everyone->LoadSystemInternalGroup('Everyone');
+ok(my $everyone_gid = $everyone->id, "loaded 'everyone' group");
+
+my @has = get_rights( $m, $everyone_gid, 'RT::System-1' );
+if ( @has ) {
+    $m->form_number(3);
+    $m->tick("RevokeRight-$everyone_gid-RT::System-1", $_) foreach @has;
+    $m->submit;
+    
+    is_deeply([get_rights( $m, $everyone_gid, 'RT::System-1' )], [], 'deleted all rights' );
+}
+
+{
+    $m->form_number(3);
+    $m->select("GrantRight-$everyone_gid-RT::System-1", ['SuperUser']);
+    $m->submit;
+
+    $m->content_contains('Right Granted', 'got message');
+    RT::Principal::InvalidateACLCache();
+    ok($everyone->PrincipalObj->HasRight( Right => 'SuperUser', Object => $RT::System ), 'group has right');
+    is_deeply( [get_rights( $m, $everyone_gid, 'RT::System-1' )], ['SuperUser'], 'granted SuperUser right' );
+}
+
+{
+    $m->form_number(3);
+    $m->tick("RevokeRight-$everyone_gid-RT::System-1", 'SuperUser');
+    $m->submit;
+
+    $m->content_contains('Right revoked', 'got message');
+    RT::Principal::InvalidateACLCache();
+    ok(!$everyone->PrincipalObj->HasRight( Right => 'SuperUser', Object => $RT::System ), 'group has no right');
+    is_deeply( [get_rights( $m, $everyone_gid, 'RT::System-1' )], [], 'revoked SuperUser right' );
+}
+


More information about the Rt-commit mailing list