5 use RT::Test tests => 47;
6 my ( $url, $m ) = RT::Test->started_ok;
7 ok( $m->login, 'logged in' );
9 my $rtname = RT->Config->Get('rtname');
14 my ( @link_tickets, @search_tickets );
16 my $link_ticket = RT::Ticket->new(RT->SystemUser);
17 my ( $ret, $msg ) = $link_ticket->Create(
18 Subject => "link ticket $_",
21 Requestor => 'root@localhost',
23 ok( $ret, "link ticket created: $msg" );
24 push @link_tickets, $ret;
28 my $ticket = RT::Ticket->new(RT->SystemUser);
29 my ( $ret, $msg ) = $ticket->Create(
30 Subject => "search ticket $_",
33 Requestor => 'root@localhost',
35 ok( $ret, "search ticket created: $msg" );
36 push @search_tickets, $ret;
39 # let's add link to 1 search ticket first
40 $m->get_ok( $url . "/Search/Bulk.html?Query=id=$search_tickets[0]&Rows=10" );
41 $m->content_contains( 'Current Links', 'has current links part' );
42 $m->content_lacks( 'DeleteLink--', 'no delete link stuff' );
44 form_name => 'BulkUpdate',
46 'Ticket-DependsOn' => $link_tickets[0],
47 'Ticket-MemberOf' => $link_tickets[1],
48 'Ticket-RefersTo' => $link_tickets[2],
52 "Ticket $search_tickets[0] depends on Ticket $link_tickets[0]",
56 "Ticket $search_tickets[0] member of Ticket $link_tickets[1]",
60 "Ticket $search_tickets[0] refers to Ticket $link_tickets[2]",
65 "DeleteLink--DependsOn-fsck.com-rt://$rtname/ticket/$link_tickets[0]",
66 'found depends on link' );
68 "DeleteLink--MemberOf-fsck.com-rt://$rtname/ticket/$link_tickets[1]",
69 'found member of link' );
71 "DeleteLink--RefersTo-fsck.com-rt://$rtname/ticket/$link_tickets[2]",
72 'found refers to link' );
74 # here we check the *real* bulk update
75 my $query = join ' OR ', map { "id=$_" } @search_tickets;
76 $m->get_ok( $url . "/Search/Bulk.html?Query=$query&Rows=10" );
77 $m->content_contains( 'Current Links', 'has current links part' );
78 $m->content_lacks( 'DeleteLink--', 'no delete link stuff' );
80 $m->form_name('BulkUpdate');
81 my @fields = qw/Owner AddRequestor DeleteRequestor AddCc DeleteCc AddAdminCc
82 DeleteAdminCc Subject Priority Queue Status Starts_Date Told_Date Due_Date
83 Resolved_Date UpdateSubject UpdateContent/;
84 for my $field ( @fields ) {
85 is( $m->value($field), '', "default $field is empty" );
88 # test DependsOn, MemberOf and RefersTo
90 form_name => 'BulkUpdate',
92 'Ticket-DependsOn' => $link_tickets[0],
93 'Ticket-MemberOf' => $link_tickets[1],
94 'Ticket-RefersTo' => $link_tickets[2],
99 "DeleteLink--DependsOn-fsck.com-rt://$rtname/ticket/$link_tickets[0]",
100 'found depends on link' );
101 $m->content_contains(
102 "DeleteLink--MemberOf-fsck.com-rt://$rtname/ticket/$link_tickets[1]",
103 'found member of link' );
104 $m->content_contains(
105 "DeleteLink--RefersTo-fsck.com-rt://$rtname/ticket/$link_tickets[2]",
106 'found refers to link' );
109 form_name => 'BulkUpdate',
111 "DeleteLink--DependsOn-fsck.com-rt://$rtname/ticket/$link_tickets[0]" =>
113 "DeleteLink--MemberOf-fsck.com-rt://$rtname/ticket/$link_tickets[1]" =>
115 "DeleteLink--RefersTo-fsck.com-rt://$rtname/ticket/$link_tickets[2]" =>
120 $m->content_lacks( 'DeleteLink--', 'links are all deleted' );
122 # test DependedOnBy, Members and ReferredToBy
125 form_name => 'BulkUpdate',
127 'DependsOn-Ticket' => $link_tickets[0],
128 'MemberOf-Ticket' => $link_tickets[1],
129 'RefersTo-Ticket' => $link_tickets[2],
133 $m->content_contains(
134 "DeleteLink-fsck.com-rt://$rtname/ticket/$link_tickets[0]-DependsOn-",
135 'found depended on link' );
136 $m->content_contains(
137 "DeleteLink-fsck.com-rt://$rtname/ticket/$link_tickets[1]-MemberOf-",
138 'found members link' );
139 $m->content_contains(
140 "DeleteLink-fsck.com-rt://$rtname/ticket/$link_tickets[2]-RefersTo-",
141 'found referrd to link' );
144 form_name => 'BulkUpdate',
146 "DeleteLink-fsck.com-rt://$rtname/ticket/$link_tickets[0]-DependsOn-" =>
148 "DeleteLink-fsck.com-rt://$rtname/ticket/$link_tickets[1]-MemberOf-" =>
150 "DeleteLink-fsck.com-rt://$rtname/ticket/$link_tickets[2]-RefersTo-" =>
154 $m->content_lacks( 'DeleteLink--', 'links are all deleted' );