X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Ft%2Fticket%2Fcfsort-freeform-multiple.t;h=ba6150b4f13aa5b9060cd6d8441d6aed30c212f0;hb=919e930aa9279b3c5cd12b593889cd6de79d67bf;hp=f8f5950ef431829c53b16e54e24fbd373af3fdae;hpb=63a268637b2d51a8766412617724b9436439deb6;p=freeside.git diff --git a/rt/t/ticket/cfsort-freeform-multiple.t b/rt/t/ticket/cfsort-freeform-multiple.t index f8f5950ef..ba6150b4f 100644 --- a/rt/t/ticket/cfsort-freeform-multiple.t +++ b/rt/t/ticket/cfsort-freeform-multiple.t @@ -1,6 +1,5 @@ -#!/usr/bin/perl -use RT::Test tests => 24; +use RT::Test nodata => 1, tests => 41; use strict; use warnings; @@ -11,11 +10,11 @@ use RT::CustomField; # Test Sorting by custom fields. -diag "Create a queue to test with." if $ENV{TEST_VERBOSE}; +diag "Create a queue to test with."; my $queue_name = "CFSortQueue-$$"; my $queue; { - $queue = RT::Queue->new( $RT::SystemUser ); + $queue = RT::Queue->new( RT->SystemUser ); my ($ret, $msg) = $queue->Create( Name => $queue_name, Description => 'queue for custom field sort testing' @@ -23,11 +22,11 @@ my $queue; ok($ret, "$queue_name - test queue creation. $msg"); } -diag "create a CF\n" if $ENV{TEST_VERBOSE}; +diag "create a CF"; my $cf_name = "Order$$"; my $cf; { - $cf = RT::CustomField->new( $RT::SystemUser ); + $cf = RT::CustomField->new( RT->SystemUser ); my ($ret, $msg) = $cf->Create( Name => $cf_name, Queue => $queue->id, @@ -36,34 +35,9 @@ my $cf; ok($ret, "Custom Field Order created"); } -my ($total, @data, @tickets, @test) = (0, ()); - -sub add_tix_from_data { - my @res = (); - @data = sort { rand(100) <=> rand(100) } @data; - while (@data) { - my $t = RT::Ticket->new($RT::SystemUser); - my %args = %{ shift(@data) }; - my @values = (); - if ( exists $args{'CF'} && ref $args{'CF'} ) { - @values = @{ delete $args{'CF'} }; - } elsif ( exists $args{'CF'} ) { - @values = (delete $args{'CF'}); - } - $args{ 'CustomField-'. $cf->id } = \@values - if @values; - my $subject = join(",", sort @values) || '-'; - my ( $id, undef $msg ) = $t->Create( - %args, - Queue => $queue->id, - Subject => $subject, - ); - ok( $id, "ticket created" ) or diag("error: $msg"); - push @res, $t; - $total++; - } - return @res; -} +my (@data, @tickets, @test) = (0, ()); + + sub run_tests { my $query_prefix = join ' OR ', map 'id = '. $_->id, @tickets; @@ -73,7 +47,7 @@ sub run_tests { foreach my $order (qw(ASC DESC)) { my $error = 0; - my $tix = RT::Tickets->new( $RT::SystemUser ); + my $tix = RT::Tickets->new( RT->SystemUser ); $tix->FromSQL( $query ); $tix->OrderBy( FIELD => $test->{'Order'}, ORDER => $order ); @@ -112,11 +86,11 @@ sub run_tests { } @data = ( - { }, - { CF => ['b', 'd'] }, - { CF => ['a', 'c'] }, + { Subject => '-' }, + { Subject => 'b-d', 'CustomField-' . $cf->id => ['b', 'd'] }, + { Subject => 'a-c', 'CustomField-' . $cf->id => ['a', 'c'] }, ); -@tickets = add_tix_from_data(); +@tickets = RT::Test->create_tickets( {Queue => $queue->id, RandomOrder => 1 }, @data); @test = ( { Order => "CF.{$cf_name}" }, { Order => "CF.$queue_name.{$cf_name}" }, @@ -124,14 +98,16 @@ sub run_tests { run_tests(); @data = ( - { CF => ['m', 'a'] }, - { CF => ['m'] }, - { CF => ['m', 'o'] }, + { Subject => 'm-a', 'CustomField-' . $cf->id => ['m', 'a'] }, + { Subject => 'm', 'CustomField-' . $cf->id => ['m'] }, + { Subject => 'm-o', 'CustomField-' . $cf->id => ['m', 'o'] }, ); -@tickets = add_tix_from_data(); +@tickets = RT::Test->create_tickets( {Queue => $queue->id, RandomORder => 1 }, @data); @test = ( { Order => "CF.{$cf_name}", Query => "CF.{$cf_name} = 'm'" }, { Order => "CF.$queue_name.{$cf_name}", Query => "CF.{$cf_name} = 'm'" }, ); run_tests(); +@tickets = (); +