X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=rt%2Flib%2Ft%2Fregression%2F14linking.t;h=6fdf61405a342e303f018046e52e7728a63b5171;hb=9c68254528b6f2c7d8c1921b452fa56064783782;hp=c8e57eaddbfc3e95c42f877df7831c932fd75972;hpb=ef20b2b6b1feb47ad02b5ff7525f1a0fd11d0fa4;p=freeside.git diff --git a/rt/lib/t/regression/14linking.t b/rt/lib/t/regression/14linking.t index c8e57eadd..6fdf61405 100644 --- a/rt/lib/t/regression/14linking.t +++ b/rt/lib/t/regression/14linking.t @@ -1,4 +1,4 @@ -use Test::More tests => '70'; +use Test::More tests => '39'; use_ok('RT'); use_ok('RT::Ticket'); use_ok('RT::ScripConditions'); @@ -12,9 +12,7 @@ RT::Init(); use File::Temp qw/tempfile/; my ($fh, $filename) = tempfile( UNLINK => 1, SUFFIX => '.rt'); my $link_scrips_orig = $RT::LinkTransactionsRun1Scrip; -my $link_acl_chacks_orig = $RT::StrictLinkACL; $RT::LinkTransactionsRun1Scrip = 1; -$RT::StrictLinkACL = 1; my $condition = RT::ScripCondition->new( $RT::SystemUser ); $condition->Load('User Defined'); @@ -70,123 +68,32 @@ my $scrip = RT::Scrip->new($RT::SystemUser); ok($id, "Scrip created"); my $u1 = RT::User->new($RT::SystemUser); -($id,$msg) = $u1->Create(Name => "LinkTestUser.$$"); -ok ($id,$msg); +($id,$msg) =$u1->Create(Name => "LinkTestUser.$$"); -my $creator = RT::CurrentUser->new($u1->id); +ok ($id,$msg); ($id,$msg) = $u1->PrincipalObj->GrantRight ( Object => $q1, Right => 'CreateTicket'); ok ($id,$msg); - -diag('Create tickets without rights to link') if $ENV{'TEST_VERBOSE'}; -{ - # on q2 we have no rights, yet - my $parent = RT::Ticket->new( $RT::SystemUser ); - ($id,$tid,$msg) = $parent->Create( Subject => 'Link test 1', Queue => $q2->id ); - ok($id,$msg); - my $child = RT::Ticket->new( $creator ); - ($id,$tid,$msg) = $child->Create( Subject => 'Link test 1', Queue => $q1->id, MemberOf => $parent->id ); - ok($id,$msg); - $child->CurrentUser( $RT::SystemUser ); - is($child->_Links('Base')->Count, 0, 'link was not created, no permissions'); - is($child->_Links('Target')->Count, 0, 'link was not create, no permissions'); -} - -diag('Create tickets with rights checks on one end of a link') if $ENV{'TEST_VERBOSE'}; -{ - # on q2 we have no rights, but use checking one only on thing - local $RT::StrictLinkACL = 0; - my $parent = RT::Ticket->new( $RT::SystemUser ); - ($id,$tid,$msg) = $parent->Create( Subject => 'Link test 1', Queue => $q2->id ); - ok($id,$msg); - my $child = RT::Ticket->new( $creator ); - ($id,$tid,$msg) = $child->Create( Subject => 'Link test 1', Queue => $q1->id, MemberOf => $parent->id ); - ok($id,$msg); - $child->CurrentUser( $RT::SystemUser ); - is($child->_Links('Base')->Count, 1, 'link was created'); - is($child->_Links('Target')->Count, 0, 'link was created only one'); - # no scrip run on second ticket accroding to config option - is(link_count($filename), 0, "scrips ok"); -} - ($id,$msg) = $u1->PrincipalObj->GrantRight ( Object => $q1, Right => 'ModifyTicket'); ok ($id,$msg); -diag('try to add link without rights') if $ENV{'TEST_VERBOSE'}; -{ - # on q2 we have no rights, yet - my $parent = RT::Ticket->new( $RT::SystemUser ); - ($id,$tid,$msg) = $parent->Create( Subject => 'Link test 1', Queue => $q2->id ); - ok($id,$msg); - my $child = RT::Ticket->new( $creator ); - ($id,$tid,$msg) = $child->Create( Subject => 'Link test 1', Queue => $q1->id ); - ok($id,$msg); - my ($id, $msg) = $child->AddLink(Type => 'MemberOf', Target => $parent->id); - ok(!$id, $msg); - is(link_count($filename), 0, "scrips ok"); - $child->CurrentUser( $RT::SystemUser ); - is($child->_Links('Base')->Count, 0, 'link was not created, no permissions'); - is($child->_Links('Target')->Count, 0, 'link was not create, no permissions'); -} +my $tid; -diag('add link with rights only on base') if $ENV{'TEST_VERBOSE'}; -{ - # on q2 we have no rights, but use checking one only on thing - local $RT::StrictLinkACL = 0; - my $parent = RT::Ticket->new( $RT::SystemUser ); - ($id,$tid,$msg) = $parent->Create( Subject => 'Link test 1', Queue => $q2->id ); - ok($id,$msg); - my $child = RT::Ticket->new( $creator ); - ($id,$tid,$msg) = $child->Create( Subject => 'Link test 1', Queue => $q1->id ); - ok($id,$msg); - my ($id, $msg) = $child->AddLink(Type => 'MemberOf', Target => $parent->id); - ok($id, $msg); - is(link_count($filename), 1, "scrips ok"); - $child->CurrentUser( $RT::SystemUser ); - is($child->_Links('Base')->Count, 1, 'link was created'); - is($child->_Links('Target')->Count, 0, 'link was created only one'); - $child->CurrentUser( $creator ); - - # turn off feature and try to delete link, we should fail - $RT::StrictLinkACL = 1; - my ($id, $msg) = $child->AddLink(Type => 'MemberOf', Target => $parent->id); - ok(!$id, $msg); - is(link_count($filename), 1, "scrips ok"); - $child->CurrentUser( $RT::SystemUser ); - $child->_Links('Base')->_DoCount; - is($child->_Links('Base')->Count, 1, 'link was not deleted'); - $child->CurrentUser( $creator ); - - # try to delete link, we should success as feature is active - $RT::StrictLinkACL = 0; - my ($id, $msg) = $child->DeleteLink(Type => 'MemberOf', Target => $parent->id); - ok($id, $msg); - is(link_count($filename), 0, "scrips ok"); - $child->CurrentUser( $RT::SystemUser ); - $child->_Links('Base')->_DoCount; - is($child->_Links('Base')->Count, 0, 'link was deleted'); -} +my $creator = RT::CurrentUser->new($u1->id); -my $tid; my $ticket = RT::Ticket->new( $creator); ok($ticket->isa('RT::Ticket')); ($id,$tid, $msg) = $ticket->Create(Subject => 'Link test 1', Queue => $q1->id); ok ($id,$msg); -diag('try link to itself') if $ENV{'TEST_VERBOSE'}; -{ - my ($id, $msg) = $ticket->AddLink(Type => 'RefersTo', Target => $ticket->id); - ok(!$id, $msg); - is(link_count($filename), 0, "scrips ok"); -} my $ticket2 = RT::Ticket->new($RT::SystemUser); ($id, $tid, $msg) = $ticket2->Create(Subject => 'Link test 2', Queue => $q2->id); ok ($id, $msg); + ($id,$msg) =$ticket->AddLink(Type => 'RefersTo', Target => $ticket2->id); ok(!$id,$msg); ok(link_count($filename) == 0, "scrips ok"); - ($id,$msg) = $u1->PrincipalObj->GrantRight ( Object => $q2, Right => 'CreateTicket'); ok ($id,$msg); ($id,$msg) = $u1->PrincipalObj->GrantRight ( Object => $q2, Right => 'ModifyTicket'); @@ -197,9 +104,6 @@ ok(link_count($filename) == 1, "scrips ok"); ($id,$msg) =$ticket->AddLink(Type => 'RefersTo', Target => -1); ok(!$id,$msg); ok(link_count($filename) == 1, "scrips ok"); -($id,$msg) = $ticket->AddLink(Type => 'RefersTo', Target => $ticket2->id); -ok($id,$msg); -is(link_count($filename), 1, "scrips ok"); my $transactions = $ticket2->Transactions; $transactions->Limit( FIELD => 'Type', VALUE => 'AddLink' ); @@ -217,7 +121,6 @@ ok( $transactions->First->Field eq 'ReferredToBy'); ok( $transactions->First->OldValue eq $ticket->URI ); $RT::LinkTransactionsRun1Scrip = 0; - ($id,$msg) =$ticket->AddLink(Type => 'RefersTo', Target => $ticket2->id); ok($id,$msg); ok(link_count($filename) == 2, "scrips ok"); @@ -227,9 +130,6 @@ ok(link_count($filename) == 0, "scrips ok"); # restore $RT::LinkTransactionsRun1Scrip = $link_scrips_orig; -$RT::StrictLinkACL = $link_acl_checks_orig; - -exit(0); sub link_count {