~bestpractical/rt/master

« back to all changes in this revision

Viewing changes to t/web/search_bulk_update.t

  • Committer: sunnavy
  • Date: 2023-10-19 19:45:11 UTC
  • mfrom: (8471.1.577)
  • Revision ID: git-v1:9fca83d11d15fb8034308194b9c9052d5df7d454
Merge branch '5.0-trunk'

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
use strict;
 
2
use warnings;
 
3
 
 
4
use RT::Test tests => undef;
 
5
my ( $url, $m ) = RT::Test->started_ok;
 
6
ok( $m->login, 'logged in' );
 
7
 
 
8
my $rtname = RT->Config->Get('rtname');
 
9
 
 
10
# create tickets
 
11
use RT::Ticket;
 
12
 
 
13
my ( @link_tickets, @search_tickets );
 
14
for ( 1 .. 3 ) {
 
15
    my $link_ticket = RT::Ticket->new(RT->SystemUser);
 
16
    my ( $ret, $msg ) = $link_ticket->Create(
 
17
        Subject   => "link ticket $_",
 
18
        Queue     => 'general',
 
19
        Owner     => 'root',
 
20
        Requestor => 'root@localhost',
 
21
    );
 
22
    ok( $ret, "link ticket created: $msg" );
 
23
    push @link_tickets, $ret;
 
24
}
 
25
 
 
26
for ( 1 .. 3 ) {
 
27
    my $ticket = RT::Ticket->new(RT->SystemUser);
 
28
    my ( $ret, $msg ) = $ticket->Create(
 
29
        Subject   => "search ticket $_",
 
30
        Queue     => 'general',
 
31
        Owner     => 'root',
 
32
        Requestor => 'root@localhost',
 
33
    );
 
34
    ok( $ret, "search ticket created: $msg" );
 
35
    push @search_tickets, $ret;
 
36
}
 
37
 
 
38
# let's add link to 1 search ticket first
 
39
$m->get_ok( $url . "/Search/Bulk.html?Query=id=$search_tickets[0]&Rows=10" );
 
40
$m->content_contains( 'Current Links', 'has current links part' );
 
41
$m->content_lacks( 'DeleteLink--', 'no delete link stuff' );
 
42
$m->submit_form(
 
43
    form_name => 'BulkUpdate',
 
44
    fields      => {
 
45
        'Ticket-DependsOn' => $link_tickets[0],
 
46
        'Ticket-MemberOf'  => $link_tickets[1],
 
47
        'Ticket-RefersTo'  => $link_tickets[2],
 
48
    },
 
49
);
 
50
$m->content_contains(
 
51
    "Ticket $search_tickets[0] depends on Ticket $link_tickets[0]",
 
52
    'depends on msg',
 
53
);
 
54
$m->content_contains(
 
55
    "Ticket $search_tickets[0] member of Ticket $link_tickets[1]",
 
56
    'member of msg',
 
57
);
 
58
$m->content_contains(
 
59
    "Ticket $search_tickets[0] refers to Ticket $link_tickets[2]",
 
60
    'refers to msg',
 
61
);
 
62
 
 
63
$m->content_contains(
 
64
    "DeleteLink--DependsOn-fsck.com-rt://$rtname/ticket/$link_tickets[0]",
 
65
    'found depends on link' );
 
66
$m->content_contains(
 
67
    "DeleteLink--MemberOf-fsck.com-rt://$rtname/ticket/$link_tickets[1]",
 
68
    'found member of link' );
 
69
$m->content_contains(
 
70
    "DeleteLink--RefersTo-fsck.com-rt://$rtname/ticket/$link_tickets[2]",
 
71
    'found refers to link' );
 
72
 
 
73
# here we check the *real* bulk update
 
74
my $query = join ' OR ', map { "id=$_" } @search_tickets;
 
75
$m->get_ok( $url . "/Search/Bulk.html?Query=$query&Rows=10" );
 
76
$m->content_contains( 'Current Links', 'has current links part' );
 
77
$m->content_lacks( 'DeleteLink--', 'no delete link stuff' );
 
78
 
 
79
$m->form_name('BulkUpdate');
 
80
my @fields = qw/Owner AddRequestor DeleteRequestor AddCc DeleteCc AddAdminCc
 
81
DeleteAdminCc Subject Priority Queue Status Starts_Date Told_Date Due_Date
 
82
UpdateSubject/;
 
83
for my $field ( @fields ) {
 
84
    is( $m->value($field), '', "default $field is empty" );
 
85
}
 
86
 
 
87
like( $m->value('UpdateContent'), qr/^\s*$/, "default UpdateContent is effectively empty" );
 
88
 
 
89
# test DependsOn, MemberOf and RefersTo
 
90
$m->submit_form(
 
91
    form_name => 'BulkUpdate',
 
92
    fields      => {
 
93
        'Ticket-DependsOn' => $link_tickets[0],
 
94
        'Ticket-MemberOf'  => $link_tickets[1],
 
95
        'Ticket-RefersTo'  => $link_tickets[2],
 
96
    },
 
97
);
 
98
 
 
99
$m->content_contains(
 
100
    "DeleteLink--DependsOn-fsck.com-rt://$rtname/ticket/$link_tickets[0]",
 
101
    'found depends on link' );
 
102
$m->content_contains(
 
103
    "DeleteLink--MemberOf-fsck.com-rt://$rtname/ticket/$link_tickets[1]",
 
104
    'found member of link' );
 
105
$m->content_contains(
 
106
    "DeleteLink--RefersTo-fsck.com-rt://$rtname/ticket/$link_tickets[2]",
 
107
    'found refers to link' );
 
108
 
 
109
$m->submit_form(
 
110
    form_name => 'BulkUpdate',
 
111
    fields      => {
 
112
        "DeleteLink--DependsOn-fsck.com-rt://$rtname/ticket/$link_tickets[0]" =>
 
113
          1,
 
114
        "DeleteLink--MemberOf-fsck.com-rt://$rtname/ticket/$link_tickets[1]" =>
 
115
          1,
 
116
        "DeleteLink--RefersTo-fsck.com-rt://$rtname/ticket/$link_tickets[2]" =>
 
117
          1,
 
118
    },
 
119
);
 
120
 
 
121
$m->content_lacks( 'DeleteLink--', 'links are all deleted' );
 
122
 
 
123
# test DependedOnBy, Members and ReferredToBy
 
124
 
 
125
$m->submit_form(
 
126
    form_name => 'BulkUpdate',
 
127
    fields      => {
 
128
        'DependsOn-Ticket' => $link_tickets[0],
 
129
        'MemberOf-Ticket'  => $link_tickets[1],
 
130
        'RefersTo-Ticket'  => $link_tickets[2],
 
131
    },
 
132
);
 
133
 
 
134
$m->content_contains(
 
135
    "DeleteLink-fsck.com-rt://$rtname/ticket/$link_tickets[0]-DependsOn-",
 
136
    'found depended on link' );
 
137
$m->content_contains(
 
138
    "DeleteLink-fsck.com-rt://$rtname/ticket/$link_tickets[1]-MemberOf-",
 
139
    'found members link' );
 
140
$m->content_contains(
 
141
    "DeleteLink-fsck.com-rt://$rtname/ticket/$link_tickets[2]-RefersTo-",
 
142
    'found referrd to link' );
 
143
 
 
144
$m->submit_form(
 
145
    form_name => 'BulkUpdate',
 
146
    fields      => {
 
147
        "DeleteLink-fsck.com-rt://$rtname/ticket/$link_tickets[0]-DependsOn-" =>
 
148
          1,
 
149
        "DeleteLink-fsck.com-rt://$rtname/ticket/$link_tickets[1]-MemberOf-" =>
 
150
          1,
 
151
        "DeleteLink-fsck.com-rt://$rtname/ticket/$link_tickets[2]-RefersTo-" =>
 
152
          1,
 
153
    },
 
154
);
 
155
$m->content_lacks( 'DeleteLink--', 'links are all deleted' );
 
156
 
 
157
$m->submit_form(
 
158
    form_name => 'BulkUpdate',
 
159
    fields      => {
 
160
        Status => 'open',
 
161
    },
 
162
);
 
163
$m->text_like( qr{Ticket \d+: Status changed from 'new' to 'open'}, 'Bulk update messages' );
 
164
$m->text_unlike( qr{Ticket \d+: Ticket \d+:'}, 'Bulk update messages do not have duplicated prefix' );
 
165
 
 
166
done_testing;