diff options
Diffstat (limited to 'rt/t/web/rest-sort.t')
-rw-r--r-- | rt/t/web/rest-sort.t | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/rt/t/web/rest-sort.t b/rt/t/web/rest-sort.t new file mode 100644 index 000000000..6b4d35169 --- /dev/null +++ b/rt/t/web/rest-sort.t @@ -0,0 +1,46 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use RT::Test tests => 25; + +my ($baseurl, $m) = RT::Test->started_ok; + +RT::Test->create_tickets( + { }, + { Subject => 'uno' }, + { Subject => 'dos' }, + { Subject => 'tres' }, +); + +ok($m->login, 'logged in'); + +sorted_tickets_ok('Subject', ['2: dos', '3: tres', '1: uno']); +sorted_tickets_ok('+Subject', ['2: dos', '3: tres', '1: uno']); +sorted_tickets_ok('-Subject', ['1: uno', '3: tres', '2: dos']); + +sorted_tickets_ok('id', ['1: uno', '2: dos', '3: tres']); +sorted_tickets_ok('+id', ['1: uno', '2: dos', '3: tres']); +sorted_tickets_ok('-id', ['3: tres', '2: dos', '1: uno']); + +undef $m; + +sub sorted_tickets_ok { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my $order = shift; + my $expected = shift; + + my $query = 'id > 0'; + + my $uri = URI->new("$baseurl/REST/1.0/search/ticket"); + $uri->query_form( + query => $query, + orderby => $order, + ); + $m->get_ok($uri); + + my @lines = split /\n/, $m->content; + shift @lines; # header + shift @lines; # empty line + + is_deeply(\@lines, $expected, "sorted results by '$order'"); +} |