summaryrefslogtreecommitdiff
path: root/rt/t/web/rest-sort.t
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2012-07-08 22:45:58 -0700
committerIvan Kohler <ivan@freeside.biz>2012-07-08 22:45:58 -0700
commita6fe07e49e3fc12169e801b1ed6874c3a5bd8500 (patch)
treeb87a7e6f37da5c8e13eb4d4653cfc8ce9239d8f0 /rt/t/web/rest-sort.t
parente27244386c346f459d1569db26344407a0372a05 (diff)
parent005424d0c899aa899f43f583a6c74deb13ea4be1 (diff)
Merge branch 'master' of git.freeside.biz:/home/git/freeside
Conflicts: httemplate/misc/process/cancel_pkg.html
Diffstat (limited to 'rt/t/web/rest-sort.t')
-rw-r--r--rt/t/web/rest-sort.t46
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'");
+}