File: rest-sort.t

package info (click to toggle)
request-tracker5 5.0.7%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 80,216 kB
  • sloc: javascript: 191,898; perl: 87,146; sh: 1,412; makefile: 487; python: 37; php: 15
file content (45 lines) | stat: -rw-r--r-- 1,133 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
use strict;
use warnings;
use RT::Test tests => undef;

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']);

done_testing;

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'");
}