diff options
| author | ivan <ivan> | 2008-03-02 04:11:51 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2008-03-02 04:11:51 +0000 | 
| commit | c648976f0b7975f2328ebd7ba8c711fad0ca4195 (patch) | |
| tree | f3d176ec300a46c253ba25a988b897bce02fe174 /rt/lib/t/regression/07acl.t | |
| parent | 5e05724a635a22776f1b973f5d7e77989da4e048 (diff) | |
| parent | 8103c1fc1b2c27a6855feadf26f91b980a54bc52 (diff) | |
This commit was generated by cvs2svn to compensate for changes in r6255,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'rt/lib/t/regression/07acl.t')
| -rw-r--r-- | rt/lib/t/regression/07acl.t | 96 | 
1 files changed, 57 insertions, 39 deletions
| diff --git a/rt/lib/t/regression/07acl.t b/rt/lib/t/regression/07acl.t index e30a59bef..efd87016d 100644 --- a/rt/lib/t/regression/07acl.t +++ b/rt/lib/t/regression/07acl.t @@ -1,9 +1,9 @@  #!/usr/bin/perl -w - +use strict;  use WWW::Mechanize;  use HTTP::Cookies; -use Test::More qw/no_plan/; +use Test::More tests => 34;  use RT;  RT::LoadConfig();  RT::Init(); @@ -20,6 +20,7 @@ ok($ret, "ACL test password set. $msg");  # Now test the web interface, making sure objects come and go as  # required. +  my $cookie_jar = HTTP::Cookies->new;  my $agent = WWW::Mechanize->new(); @@ -27,62 +28,53 @@ my $agent = WWW::Mechanize->new();  $agent->cookie_jar($cookie_jar); - +no warnings 'once';  # get the top page -my $url = $RT::WebURL; -$agent->get($url); - -is ($agent->{'status'}, 200, "Loaded a page - $RT::WebURL"); -# {{{ test a login - -# follow the link marked "Login" - -ok($agent->{form}->find_input('user')); - -ok($agent->{form}->find_input('pass')); -ok ($agent->{'content'} =~ /username:/i); -$agent->field( 'user' => 'customer-'.$$ ); -$agent->field( 'pass' => 'customer' ); -# the field isn't named, so we have to click link 0 -$agent->click(0); -is($agent->{'status'}, 200, "Fetched the page ok"); -ok($agent->{'content'} =~ /Logout/i, "Found a logout link"); +login($agent, $user_obj);  # Test for absence of Configure and Preferences tabs. -ok(!$agent->find_link( url => "$RT::WebPath/Admin/", +ok(!$agent->find_link( url => $RT::WebPath . "/Admin/",  		       text => 'Configuration'), "No config tab" ); -ok(!$agent->find_link( url => "$RT::WebPath/User/Prefs.html", +ok(!$agent->find_link( url => $RT::WebPath . "/User/Prefs.html",  		       text => 'Preferences'), "No prefs pane" );  # Now test for their presence, one at a time.  Sleep for a bit after  # ACL changes, thanks to the 10s ACL cache. -$user_obj->PrincipalObj->GrantRight(Right => 'ShowConfigTab'); -$agent->reload(); +my ($grantid,$grantmsg) =$user_obj->PrincipalObj->GrantRight(Right => 'ShowConfigTab', Object => $RT::System); + +ok($grantid,$grantmsg); + +$agent->reload; +  ok($agent->{'content'} =~ /Logout/i, "Reloaded page successfully"); -ok($agent->find_link( url => "$RT::WebPath/Admin/", +ok($agent->find_link( url => $RT::WebPath . "/Admin/",  		       text => 'Configuration'), "Found config tab" ); -$user_obj->PrincipalObj->RevokeRight(Right => 'ShowConfigTab'); -$user_obj->PrincipalObj->GrantRight(Right => 'ModifySelf'); +my ($revokeid,$revokemsg) =$user_obj->PrincipalObj->RevokeRight(Right => 'ShowConfigTab'); +ok ($revokeid,$revokemsg); +($grantid,$grantmsg) =$user_obj->PrincipalObj->GrantRight(Right => 'ModifySelf'); +ok ($grantid,$grantmsg);  $agent->reload();  ok($agent->{'content'} =~ /Logout/i, "Reloaded page successfully"); -ok($agent->find_link( url => "$RT::WebPath/User/Prefs.html", +ok($agent->find_link( url => $RT::WebPath . "/User/Prefs.html",  		       text => 'Preferences'), "Found prefs pane" ); -$user_obj->PrincipalObj->RevokeRight(Right => 'ModifySelf'); - +($revokeid,$revokemsg) = $user_obj->PrincipalObj->RevokeRight(Right => 'ModifySelf'); +ok ($revokeid,$revokemsg);  # Good.  Now load the search page and test Load/Save Search. -$agent->follow_link( url => "$RT::WebPath/Search/Build.html", +$agent->follow_link( url => $RT::WebPath . "/Search/Build.html",  		     text => 'Tickets');  is($agent->{'status'}, 200, "Fetched search builder page");  ok($agent->{'content'} !~ /Load saved search/i, "No search loading box");  ok($agent->{'content'} !~ /Saved searches/i, "No saved searches box"); -$user_obj->PrincipalObj->GrantRight(Right => 'LoadSavedSearch'); +($grantid,$grantmsg) = $user_obj->PrincipalObj->GrantRight(Right => 'LoadSavedSearch'); +ok($grantid,$grantmsg);  $agent->reload();  ok($agent->{'content'} =~ /Load saved search/i, "Search loading box exists");  ok($agent->{'content'} !~ /input\s+type=.submit.\s+name=.Save./i,      "Still no saved searches box"); -$user_obj->PrincipalObj->GrantRight(Right => 'CreateSavedSearch'); +($grantid,$grantmsg) =$user_obj->PrincipalObj->GrantRight(Right => 'CreateSavedSearch'); +ok ($grantid,$grantmsg);  $agent->reload();  ok($agent->{'content'} =~ /Load saved search/i,      "Search loading box still exists"); @@ -93,22 +85,24 @@ ok($agent->{'content'} =~ /input\s+type=.submit.\s+name=.Save./i,  # via SelectOwner.  my $queue_obj = RT::Queue->new($RT::SystemUser); -($ret, $msg) = $queue_obj->Create(Name => 'CustomerQueue',  +($ret, $msg) = $queue_obj->Create(Name => 'CustomerQueue-'.$$,   				  Description => 'queue for SelectOwner testing');  ok($ret, "SelectOwner test queue creation. $msg");  my $group_obj = RT::Group->new($RT::SystemUser); -($ret, $msg) = $group_obj->CreateUserDefinedGroup(Name => 'CustomerGroup', +($ret, $msg) = $group_obj->CreateUserDefinedGroup(Name => 'CustomerGroup-'.$$,  			      Description => 'group for SelectOwner testing');  ok($ret, "SelectOwner test group creation. $msg");  # Add our customer to the customer group, and give it queue rights.  ($ret, $msg) = $group_obj->AddMember($user_obj->PrincipalObj->Id());  ok($ret, "Added customer to its group. $msg"); -$group_obj->PrincipalObj->GrantRight(Right => 'OwnTicket', +($grantid,$grantmsg) =$group_obj->PrincipalObj->GrantRight(Right => 'OwnTicket',  				     Object => $queue_obj); -$group_obj->PrincipalObj->GrantRight(Right => 'SeeQueue', +                                      +ok($grantid,$grantmsg); +($grantid,$grantmsg) =$group_obj->PrincipalObj->GrantRight(Right => 'SeeQueue',  				     Object => $queue_obj); - +ok ($grantid,$grantmsg);  # Now.  When we look at the search page we should be able to see  # ourself in the list of possible owners. @@ -117,4 +111,28 @@ ok($agent->form_name('BuildQuery'), "Yep, form is still there");  my $input = $agent->current_form->find_input('ValueOfActor');  ok(grep(/customer-$$/, $input->value_names()), "Found self in the actor listing"); +sub login { +    my $agent = shift; + +    my $url = $RT::WebURL; +    $agent->get($url); +    is( $agent->{'status'}, 200, +        "Loaded a page - $url" ); + +    # {{{ test a login + +    # follow the link marked "Login" + +    ok( $agent->{form}->find_input('user') ); + +    ok( $agent->{form}->find_input('pass') ); +    ok( $agent->{'content'} =~ /username:/i ); +    $agent->field( 'user' => $user_obj->Name ); +    $agent->field( 'pass' => 'customer' ); + +    # the field isn't named, so we have to click link 0 +    $agent->click(0); +    is( $agent->{'status'}, 200, "Fetched the page ok" ); +    ok( $agent->{'content'} =~ /Logout/i, "Found a logout link" ); +}  1; | 
