import rt 3.8.7
[freeside.git] / rt / t / ticket / quicksearch.t
1
2 #!/usr/bin/perl -w
3
4 use strict;
5 use warnings;
6
7 use RT::Test tests => 10;
8 use_ok('RT');
9
10
11 my $q = RT::Queue->new($RT::SystemUser);
12 my $queue = 'SearchTests-'.$$;
13 $q->Create(Name => $queue);
14 ok ($q->id, "Created the queue");
15
16 my $t1 = RT::Ticket->new($RT::SystemUser);
17 my ( $id, undef, $msg ) = $t1->Create(
18     Queue      => $q->id,
19     Subject    => 'SearchTest1',
20     Requestor => ['search2@example.com'],
21 );
22 ok( $id, $msg );
23
24 use_ok("RT::Search::Googleish");
25
26 my $active_statuses = join( " OR ", map "Status = '$_'", RT::Queue->ActiveStatusArray());
27
28 my $tickets = RT::Tickets->new($RT::SystemUser);
29 my $quick = RT::Search::Googleish->new(Argument => "",
30                                  TicketsObj => $tickets);
31 my @tests = (
32     "General new open root"     => "( Owner = 'root' ) AND ( Queue = 'General' ) AND ( Status = 'new' OR Status = 'open' )", 
33     "fulltext:jesse"       => "( Content LIKE 'jesse' ) AND ( $active_statuses )",
34     $queue                 => "( Queue = '$queue' ) AND ( $active_statuses )",
35     "root $queue"          => "( Owner = 'root' ) AND ( Queue = '$queue' ) AND ( $active_statuses )",
36     "notauser $queue"      => "( Queue = '$queue' ) AND ( $active_statuses ) AND ( Subject LIKE 'notauser' )",
37     "notauser $queue root" => "( Owner = 'root' ) AND ( Queue = '$queue' ) AND ( $active_statuses ) AND ( Subject LIKE 'notauser' )");
38
39 while (my ($from, $to) = splice @tests, 0, 2) {
40     is($quick->QueryToSQL($from), $to, "<$from> -> <$to>");
41 }