diff options
author | ivan <ivan> | 2009-12-31 13:16:41 +0000 |
---|---|---|
committer | ivan <ivan> | 2009-12-31 13:16:41 +0000 |
commit | 63a268637b2d51a8766412617724b9436439deb6 (patch) | |
tree | a50f6d4c7829d5c80905e989144317192a44dc90 /rt/t/ticket/search_long_cf_values.t | |
parent | 65a561e3cd8c1ba94f6282f5d2a1cd9783afbd21 (diff) | |
parent | b4b0c7e72d7eaee2fbfc7022022c9698323203dd (diff) |
This commit was generated by cvs2svn to compensate for changes in r8690,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'rt/t/ticket/search_long_cf_values.t')
-rw-r--r-- | rt/t/ticket/search_long_cf_values.t | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/rt/t/ticket/search_long_cf_values.t b/rt/t/ticket/search_long_cf_values.t new file mode 100644 index 000000000..f9cc7b5a2 --- /dev/null +++ b/rt/t/ticket/search_long_cf_values.t @@ -0,0 +1,79 @@ +#!/opt/perl/bin/perl -w + +# tests relating to searching. Especially around custom fields with long values +# (> 255 chars) + +use strict; +use warnings; + +use RT::Test tests => 10; + +# setup the queue + +my $q = RT::Queue->new($RT::SystemUser); +my $queue = 'SearchTests-'.$$; +$q->Create(Name => $queue); +ok ($q->id, "Created the queue"); + + +# setup the CF +my $cf = RT::CustomField->new($RT::SystemUser); +$cf->Create(Name => 'SearchTest', Type => 'Freeform', MaxValues => 0, Queue => $q->id); +ok($cf->id, "Created the SearchTest CF"); +my $cflabel = "CustomField-".$cf->id; + +# setup some tickets +my $t1 = RT::Ticket->new($RT::SystemUser); +my ( $id, undef $msg ) = $t1->Create( + Queue => $q->id, + Subject => 'SearchTest1', + Requestor => ['search@example.com'], + $cflabel => 'foo', +); +ok( $id, $msg ); + + +my $t2 = RT::Ticket->new($RT::SystemUser); +( $id, undef, $msg ) = $t2->Create( + Queue => $q->id, + Subject => 'SearchTest2', + Requestor => ['searchlong@example.com'], + $cflabel => 'bar' x 150, +); +ok( $id, $msg ); + +my $t3 = RT::Ticket->new($RT::SystemUser); +( $id, undef, $msg ) = $t3->Create( + Queue => $q->id, + Subject => 'SearchTest3', + Requestor => ['searchlong@example.com'], + $cflabel => 'bar', +); +ok( $id, $msg ); + +# we have tickets. start searching +my $tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND CF.SearchTest LIKE 'foo'"); +is($tix->Count, 1, "matched short string foo") + or diag "wrong results from SQL:\n". $tix->BuildSelectCountQuery; + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND CF.SearchTest LIKE 'bar'"); +is($tix->Count, 2, "matched long+short string bar") + or diag "wrong results from SQL:\n". $tix->BuildSelectCountQuery; + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND ( CF.SearchTest LIKE 'foo' OR CF.SearchTest LIKE 'bar' )"); +is($tix->Count, 3, "matched short string foo or long+short string bar") + or diag "wrong results from SQL:\n". $tix->BuildSelectCountQuery; + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND CF.SearchTest NOT LIKE 'foo' AND CF.SearchTest LIKE 'bar'"); +is($tix->Count, 2, "not matched short string foo and matched long+short string bar") + or diag "wrong results from SQL:\n". $tix->BuildSelectCountQuery; + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND CF.SearchTest LIKE 'foo' AND CF.SearchTest NOT LIKE 'bar'"); +is($tix->Count, 1, "matched short string foo and not matched long+short string bar") + or diag "wrong results from SQL:\n". $tix->BuildSelectCountQuery; + |