+ok(
+ RT::Test->set_rights(
+ {
+ Principal => $user_a,
+ Right => [
+ qw(SeeQueue ShowTicket CreateTicket ReplyToTicket OwnTicket TakeTicket StealTicket)
+ ]
+ },
+ { Principal => $user_b, Right => [qw(SeeQueue ShowTicket OwnTicket)] },
+ ),
+ 'set rights'
+);
+
+diag
+"action is Take if old owner is nobody and new owner is current user in update page";
+{
+ my $ticket = RT::Ticket->new( $user_a );
+ my ( $id, $txn, $msg ) = $ticket->Create(
+ Queue => $queue->id,
+ Subject => 'test',
+ );
+ ok $id, 'created a ticket #'. $id or diag "error: $msg";
+ is $ticket->Owner, RT->Nobody->id, 'correct owner';
+
+ $agent_a->goto_ticket( $id );
+ $agent_a->content_lacks('Taken', 'no Taken');
+ $agent_a->follow_link_ok({text => 'Reply'}, 'Ticket -> Reply');
+ $agent_a->submit_form(
+ form_name => 'TicketUpdate',
+ fields => { Owner => $user_a->id },
+ button => 'SubmitTicket',
+ );
+ $agent_a->content_like( qr/user_a\s+-\s+Taken/, 'got user_a Taken message' );
+
+ $agent_b->goto_ticket($id);
+ $agent_b->content_like( qr/user_a\s+-\s+Taken/, 'got user_a Taken message for user b ' );
+}
+
+diag
+"action is Take if old owner is nobody and new owner is current user in basics page";
+{
+ my $ticket = RT::Ticket->new($user_a);
+ my ( $id, $txn, $msg ) = $ticket->Create(
+ Queue => $queue->id,
+ Subject => 'test',
+ );
+ ok $id, 'created a ticket #' . $id or diag "error: $msg";
+ is $ticket->Owner, RT->Nobody->id, 'correct owner';
+
+ $agent_a->goto_ticket($id);
+ $agent_a->content_lacks('Taken', 'no Taken');
+ $agent_a->follow_link_ok( { text => 'Basics' }, 'Ticket -> Basics' );
+ $agent_a->submit_form(
+ form_name => 'TicketModify',
+ fields => { Owner => $user_a->id },
+ );
+ $agent_a->content_contains( 'Owner changed from Nobody to user_a',
+ 'got set message in Basics' );
+ $agent_a->goto_ticket($id);
+ $agent_a->content_like( qr/user_a\s+-\s+Taken/, 'got user_a Taken message' );
+
+ $agent_b->goto_ticket($id);
+ $agent_b->content_like( qr/user_a\s+-\s+Taken/, 'got user_a Taken message for user b ' );
+}
+