summaryrefslogtreecommitdiff
path: root/rt/t/ticket/merge.t
diff options
context:
space:
mode:
Diffstat (limited to 'rt/t/ticket/merge.t')
-rw-r--r--rt/t/ticket/merge.t49
1 files changed, 47 insertions, 2 deletions
diff --git a/rt/t/ticket/merge.t b/rt/t/ticket/merge.t
index a714cb6..7c72fe0 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");
+}