first pass RT4 merge, RT#13852
[freeside.git] / rt / t / web / search_cf_quotes.t
diff --git a/rt/t/web/search_cf_quotes.t b/rt/t/web/search_cf_quotes.t
new file mode 100644 (file)
index 0000000..360fe0d
--- /dev/null
@@ -0,0 +1,53 @@
+use strict;
+use warnings;
+
+use RT::Test tests => 24;
+my ( $baseurl, $m ) = RT::Test->started_ok;
+
+my $cf = RT::CustomField->new($RT::SystemUser);
+ok(
+    $cf->Create(
+        Name       => "I'm a cf",
+        Type       => 'Date',
+        LookupType => 'RT::Queue-RT::Ticket',
+    )
+);
+ok( $cf->AddToObject( RT::Queue->new($RT::SystemUser) ) );
+
+RT::Test->create_tickets(
+    { Queue   => 'General' },
+    { Subject => 'ticket foo', 'CustomField-' . $cf->id => '2011-09-15' },
+    { Subject => 'ticket bar', 'CustomField-' . $cf->id => '2011-10-15' },
+    { Subject => 'ticket baz' },
+);
+
+ok( $m->login, 'logged in' );
+
+$m->get_ok('/Search/Build.html');
+$m->form_name( 'BuildQuery' );
+
+my ($cf_op) =
+  $m->find_all_inputs( type => 'option', name_regex => qr/I'm a cf/ );
+my ($cf_field) =
+  $m->find_all_inputs( type => 'text', name_regex => qr/I'm a cf/ );
+
+diag "search directly";
+$m->submit_form(
+    fields    => { $cf_op->name => '<', $cf_field->name => '2011-09-30', },
+    button    => 'DoSearch',
+);
+
+$m->title_is( 'Found 1 ticket', 'found only 1 ticket' );
+$m->content_contains( 'ticket foo', 'has ticket foo' );
+
+diag "first add clause, then search";
+$m->get_ok('/Search/Build.html?NewQuery=1');
+$m->form_name( 'BuildQuery' );
+$m->submit_form(
+    fields    => { $cf_op->name => '<', $cf_field->name => '2011-09-30', },
+    button    => 'AddClause',
+);
+$m->follow_link_ok( { text => 'Show Results' } );
+$m->title_is( 'Found 1 ticket', 'found only 1 ticket' );
+$m->content_contains( 'ticket foo', 'has ticket foo' );
+