first pass RT4 merge, RT#13852
[freeside.git] / rt / t / web / search_cf_quotes.t
1 use strict;
2 use warnings;
3
4 use RT::Test tests => 24;
5 my ( $baseurl, $m ) = RT::Test->started_ok;
6
7 my $cf = RT::CustomField->new($RT::SystemUser);
8 ok(
9     $cf->Create(
10         Name       => "I'm a cf",
11         Type       => 'Date',
12         LookupType => 'RT::Queue-RT::Ticket',
13     )
14 );
15 ok( $cf->AddToObject( RT::Queue->new($RT::SystemUser) ) );
16
17 RT::Test->create_tickets(
18     { Queue   => 'General' },
19     { Subject => 'ticket foo', 'CustomField-' . $cf->id => '2011-09-15' },
20     { Subject => 'ticket bar', 'CustomField-' . $cf->id => '2011-10-15' },
21     { Subject => 'ticket baz' },
22 );
23
24 ok( $m->login, 'logged in' );
25
26 $m->get_ok('/Search/Build.html');
27 $m->form_name( 'BuildQuery' );
28
29 my ($cf_op) =
30   $m->find_all_inputs( type => 'option', name_regex => qr/I'm a cf/ );
31 my ($cf_field) =
32   $m->find_all_inputs( type => 'text', name_regex => qr/I'm a cf/ );
33
34 diag "search directly";
35 $m->submit_form(
36     fields    => { $cf_op->name => '<', $cf_field->name => '2011-09-30', },
37     button    => 'DoSearch',
38 );
39
40 $m->title_is( 'Found 1 ticket', 'found only 1 ticket' );
41 $m->content_contains( 'ticket foo', 'has ticket foo' );
42
43 diag "first add clause, then search";
44 $m->get_ok('/Search/Build.html?NewQuery=1');
45 $m->form_name( 'BuildQuery' );
46 $m->submit_form(
47     fields    => { $cf_op->name => '<', $cf_field->name => '2011-09-30', },
48     button    => 'AddClause',
49 );
50 $m->follow_link_ok( { text => 'Show Results' } );
51 $m->title_is( 'Found 1 ticket', 'found only 1 ticket' );
52 $m->content_contains( 'ticket foo', 'has ticket foo' );
53