X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Ft%2Fticket%2Fmerge.t;h=7c72fe08f074fa4b74dd43b5be9416ca559b91ac;hb=fb4ab1073f0d15d660c6cdc4e07afebf68ef3924;hp=a714cb6cc86b75014eda11c2d375305cfe0f295a;hpb=63a268637b2d51a8766412617724b9436439deb6;p=freeside.git diff --git a/rt/t/ticket/merge.t b/rt/t/ticket/merge.t index a714cb6cc..7c72fe08f 100644 --- a/rt/t/ticket/merge.t +++ b/rt/t/ticket/merge.t @@ -5,7 +5,7 @@ use warnings; use RT; -use RT::Test tests => '17'; +use RT::Test tests => '29'; # validate that when merging two tickets, the comments from both tickets @@ -16,7 +16,10 @@ use RT::Test tests => '17'; ok ($id,$msg); my $t1 = RT::Ticket->new($RT::SystemUser); - my ($tid,$transid, $t1msg) =$t1->Create ( Queue => $queue->Name, Subject => 'Merge test. orig'); + my ($tid,$transid, $t1msg) =$t1->Create( + Queue => $queue->Name, + Subject => 'Merge test. orig', + ); ok ($tid, $t1msg); ($id, $msg) = $t1->Comment(Content => 'This is a Comment on the original'); ok($id,$msg); @@ -90,3 +93,45 @@ use RT::Test tests => '17'; ($id,$val) = $t->MergeInto($t2->id); ok($id,$val); } + +my $user = RT::Test->load_or_create_user( + Name => 'a user', Password => 'password', +); +ok $user && $user->id, 'loaded or created user'; + +# check rights +{ + RT::Test->set_rights( + { Principal => 'Everyone', Right => [qw(SeeQueue ShowTicket CreateTicket OwnTicket TakeTicket)] }, + { Principal => 'Owner', Right => [qw(ModifyTicket)] }, + ); + + my $t = RT::Ticket->new(RT::CurrentUser->new($user)); + $t->Create(Subject => 'Main', Queue => 'general'); + ok ($t->id, "Created ticket"); + + my $t2 = RT::Ticket->new(RT::CurrentUser->new($user)); + $t2->Create(Subject => 'Second', Queue => 'general'); + ok ($t2->id, "Created ticket"); + + foreach my $ticket ( $t, $t2 ) { + ok( !$ticket->CurrentUserHasRight('ModifyTicket'), "can not modify" ); + } + + my ($status,$msg) = $t->MergeInto($t2->id); + ok(!$status, "Can not merge: $msg"); + + ($status, $msg) = $t->SetOwner( $user->id ); + ok( $status, "User took ticket"); + ok( $t->CurrentUserHasRight('ModifyTicket'), "can modify after take" ); + + ($status,$msg) = $t->MergeInto($t2->id); + ok(!$status, "Can not merge: $msg"); + + ($status, $msg) = $t2->SetOwner( $user->id ); + ok( $status, "User took ticket"); + ok( $t2->CurrentUserHasRight('ModifyTicket'), "can modify after take" ); + + ($status,$msg) = $t->MergeInto($t2->id); + ok($status, "Merged tickets: $msg"); +}