first pass RT4 merge, RT#13852
[freeside.git] / rt / t / web / saved_search_context.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4
5 use RT::Test no_plan => 1;
6 my ( $url, $m ) = RT::Test->started_ok;
7
8 my $ticket = RT::Ticket->new(RT->SystemUser);
9 for (['x', 50], ['y', 40], ['z', 30]) {
10     $ticket->Create(
11         Subject   => $_->[0],
12         Queue     => 'general',
13         Owner     => 'root',
14         Priority  => $_->[1],
15         Requestor => 'root@localhost',
16     );
17 }
18
19 ok( $m->login, 'logged in' );
20
21 $m->get($url . '/Search/Build.html?NewQuery=1');
22 $m->form_name('BuildQuery');
23 $m->field(ValueOfPriority => 45);
24 $m->click('DoSearch');
25 #RT->Logger->error($m->uri); sleep 100;
26 #{ open my $fh, '>', 'm.html'; print $fh $m->content; close $fh; }; die;
27 $m->text_contains('Found 2 tickets');
28
29 $m->follow_link(id => 'page-edit_search');
30 $m->form_name('BuildQuery');
31 $m->field(ValueOfAttachment => 'z');
32 $m->click('DoSearch');
33
34 $m->text_contains('Found 1 ticket');
35
36 $m->follow_link(id => 'page-bulk');
37
38 $m->form_name('BulkUpdate');
39 ok(!$m->value('UpdateTicket2'), "There is no Ticket #2 in the search's bulk update");
40
41 sub edit_search_link_has {
42     my ($m, $id, $msg) = @_;
43
44     local $Test::Builder::Level = $Test::Builder::Level + 1;
45
46     (my $dec_id = $id) =~ s/:/%3A/g;
47
48     my $chart_url = $m->find_link(id => 'page-edit_search')->url;
49     like(
50         $chart_url, qr{SavedSearchId=\Q$dec_id\E},
51         $msg || 'Search link matches the pattern we expected'
52     );
53 }
54
55 diag("Test search context");
56 {
57     $m->get_ok($url . '/Search/Build.html');
58     $m->form_name('BuildQuery');
59     $m->field(ValueOfPriority => 45);
60     $m->click('AddClause');
61     $m->form_name('BuildQuery');
62     $m->set_fields(
63         SavedSearchDescription => 'my saved search',
64     );
65     $m->click('SavedSearchSave');
66
67     my $saved_search_id = $m->form_name('BuildQuery')->value('SavedSearchId');
68     edit_search_link_has($m, $saved_search_id);
69 }