update address standardization for cust_location changes
[freeside.git] / rt / t / web / search_simple.t
diff --git a/rt/t/web/search_simple.t b/rt/t/web/search_simple.t
new file mode 100644 (file)
index 0000000..a1a3ce8
--- /dev/null
@@ -0,0 +1,76 @@
+use strict;
+use warnings;
+
+use RT::Test tests => 30;
+my ( $baseurl, $m ) = RT::Test->started_ok;
+
+RT::Test->create_tickets(
+    { Queue   => 'General' },
+    { Subject => 'ticket foo' },
+    { Subject => 'ticket bar' },
+);
+
+ok( $m->login, 'logged in' );
+
+$m->get_ok('/Search/Simple.html');
+$m->content_lacks( 'Show Results', 'no page menu' );
+$m->get_ok('/Search/Simple.html?q=ticket foo');
+$m->content_contains( 'Show Results',   "has page menu" );
+$m->title_is( 'Found 1 ticket', 'title' );
+$m->content_contains( 'ticket foo', 'has ticket foo' );
+
+# Test searches on custom fields
+my $cf1 = RT::Test->load_or_create_custom_field(
+                      Name  => 'Location',
+                      Queue => 'General',
+                      Type  => 'FreeformSingle', );
+isa_ok( $cf1, 'RT::CustomField' );
+
+my $cf2 = RT::Test->load_or_create_custom_field(
+                      Name  => 'Server-name',
+                      Queue => 'General',
+                      Type  => 'FreeformSingle', );
+isa_ok( $cf2, 'RT::CustomField' );
+
+my $t = RT::Ticket->new(RT->SystemUser);
+
+{
+  my ($id,undef,$msg) = $t->Create(
+            Queue => 'General',
+            Subject => 'Test searching CFs');
+  ok( $id, "Created ticket - $msg" );
+}
+
+{
+  my ($status, $msg) = $t->AddCustomFieldValue(
+                           Field => $cf1->id,
+                          Value => 'Downtown');
+  ok( $status, "Added CF value - $msg" );
+}
+
+{
+  my ($status, $msg) = $t->AddCustomFieldValue(
+                           Field => $cf2->id,
+                          Value => 'Proxy');
+  ok( $status, "Added CF value - $msg" );
+}
+
+# Regular search
+my $search = 'cf.Location:Downtown';
+$m->get_ok("/Search/Simple.html?q=$search");
+$m->title_is( 'Found 1 ticket', 'Found 1 ticket' );
+$m->text_contains( 'Test searching CFs', "Found test CF ticket with $search" );
+
+# Case insensitive
+$search = "cf.Location:downtown";
+$m->get_ok("/Search/Simple.html?q=$search");
+$m->title_is( 'Found 1 ticket', 'Found 1 ticket' );
+$m->text_contains( 'Test searching CFs', "Found test CF ticket with $search" );
+
+# With dash in CF name
+$search = "cf.Server-name:Proxy";
+$m->get_ok("/Search/Simple.html?q=$search");
+$m->title_is( 'Found 1 ticket', 'Found 1 ticket' );
+$m->text_contains( 'Test searching CFs', "Found test CF ticket with $search" );
+
+# TODO more simple search tests