|
Link Here
|
| 32 |
|
32 |
|
| 33 |
get '/pagination_headers' => sub { |
33 |
get '/pagination_headers' => sub { |
| 34 |
my $c = shift; |
34 |
my $c = shift; |
| 35 |
$c->add_pagination_headers({ total => 10, params => { page => 2, per_page => 3, firstname => 'Jonathan' } }); |
35 |
$c->add_pagination_headers({ total => 10, params => { _page => 2, _per_page => 3, firstname => 'Jonathan' } }); |
| 36 |
$c->render( json => { ok => 1 }, status => 200 ); |
36 |
$c->render( json => { ok => 1 }, status => 200 ); |
| 37 |
}; |
37 |
}; |
| 38 |
|
38 |
|
| 39 |
get '/pagination_headers_first_page' => sub { |
39 |
get '/pagination_headers_first_page' => sub { |
| 40 |
my $c = shift; |
40 |
my $c = shift; |
| 41 |
$c->add_pagination_headers({ total => 10, params => { page => 1, per_page => 3, firstname => 'Jonathan' } }); |
41 |
$c->add_pagination_headers({ total => 10, params => { _page => 1, _per_page => 3, firstname => 'Jonathan' } }); |
| 42 |
$c->render( json => { ok => 1 }, status => 200 ); |
42 |
$c->render( json => { ok => 1 }, status => 200 ); |
| 43 |
}; |
43 |
}; |
| 44 |
|
44 |
|
| 45 |
get '/pagination_headers_last_page' => sub { |
45 |
get '/pagination_headers_last_page' => sub { |
| 46 |
my $c = shift; |
46 |
my $c = shift; |
| 47 |
$c->add_pagination_headers({ total => 10, params => { page => 4, per_page => 3, firstname => 'Jonathan' } }); |
47 |
$c->add_pagination_headers({ total => 10, params => { _page => 4, _per_page => 3, firstname => 'Jonathan' } }); |
| 48 |
$c->render( json => { ok => 1 }, status => 200 ); |
48 |
$c->render( json => { ok => 1 }, status => 200 ); |
| 49 |
}; |
49 |
}; |
| 50 |
|
50 |
|
|
Link Here
|
| 67 |
$t->get_ok('/pagination_headers') |
67 |
$t->get_ok('/pagination_headers') |
| 68 |
->status_is( 200 ) |
68 |
->status_is( 200 ) |
| 69 |
->header_is( 'X-Total-Count' => 10, 'X-Total-Count contains the passed value' ) |
69 |
->header_is( 'X-Total-Count' => 10, 'X-Total-Count contains the passed value' ) |
| 70 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*per_page=3.*>; rel="prev",/ ) |
70 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_per_page=3.*>; rel="prev",/ ) |
| 71 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*page=1.*>; rel="prev",/ ) |
71 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_page=1.*>; rel="prev",/ ) |
| 72 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="prev",/ ) |
72 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="prev",/ ) |
| 73 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*per_page=3.*>; rel="next",/ ) |
73 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_per_page=3.*>; rel="next",/ ) |
| 74 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*page=3.*>; rel="next",/ ) |
74 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_page=3.*>; rel="next",/ ) |
| 75 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="next",/ ) |
75 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="next",/ ) |
| 76 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*per_page=3.*>; rel="first",/ ) |
76 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_per_page=3.*>; rel="first",/ ) |
| 77 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*page=1.*>; rel="first",/ ) |
77 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_page=1.*>; rel="first",/ ) |
| 78 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="first",/ ) |
78 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="first",/ ) |
| 79 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*per_page=3.*>; rel="last"/ ) |
79 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_per_page=3.*>; rel="last"/ ) |
| 80 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*page=4.*>; rel="last"/ ) |
80 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_page=4.*>; rel="last"/ ) |
| 81 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="last"/ ); |
81 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="last"/ ); |
| 82 |
|
82 |
|
| 83 |
$t->get_ok('/pagination_headers_first_page') |
83 |
$t->get_ok('/pagination_headers_first_page') |
| 84 |
->status_is( 200 ) |
84 |
->status_is( 200 ) |
| 85 |
->header_is( 'X-Total-Count' => 10, 'X-Total-Count contains the passed value' ) |
85 |
->header_is( 'X-Total-Count' => 10, 'X-Total-Count contains the passed value' ) |
| 86 |
->header_unlike( 'Link' => qr/<http:\/\/.*\?.*>; rel="prev",/ ) |
86 |
->header_unlike( 'Link' => qr/<http:\/\/.*\?.*>; rel="prev",/ ) |
| 87 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*per_page=3.*>; rel="next",/ ) |
87 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_per_page=3.*>; rel="next",/ ) |
| 88 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*page=2.*>; rel="next",/ ) |
88 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_page=2.*>; rel="next",/ ) |
| 89 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="next",/ ) |
89 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="next",/ ) |
| 90 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*per_page=3.*>; rel="first",/ ) |
90 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_per_page=3.*>; rel="first",/ ) |
| 91 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*page=1.*>; rel="first",/ ) |
91 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_page=1.*>; rel="first",/ ) |
| 92 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="first",/ ) |
92 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="first",/ ) |
| 93 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*per_page=3.*>; rel="last"/ ) |
93 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_per_page=3.*>; rel="last"/ ) |
| 94 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*page=4.*>; rel="last"/ ) |
94 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_page=4.*>; rel="last"/ ) |
| 95 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="last"/ ); |
95 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="last"/ ); |
| 96 |
|
96 |
|
| 97 |
$t->get_ok('/pagination_headers_last_page') |
97 |
$t->get_ok('/pagination_headers_last_page') |
| 98 |
->status_is( 200 ) |
98 |
->status_is( 200 ) |
| 99 |
->header_is( 'X-Total-Count' => 10, 'X-Total-Count contains the passed value' ) |
99 |
->header_is( 'X-Total-Count' => 10, 'X-Total-Count contains the passed value' ) |
| 100 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*per_page=3.*>; rel="prev",/ ) |
100 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_per_page=3.*>; rel="prev",/ ) |
| 101 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*page=3.*>; rel="prev",/ ) |
101 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_page=3.*>; rel="prev",/ ) |
| 102 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="prev",/ ) |
102 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="prev",/ ) |
| 103 |
->header_unlike( 'Link' => qr/<http:\/\/.*\?.*>; rel="next",/ ) |
103 |
->header_unlike( 'Link' => qr/<http:\/\/.*\?.*>; rel="next",/ ) |
| 104 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*per_page=3.*>; rel="first",/ ) |
104 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_per_page=3.*>; rel="first",/ ) |
| 105 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*page=1.*>; rel="first",/ ) |
105 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_page=1.*>; rel="first",/ ) |
| 106 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="first",/ ) |
106 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="first",/ ) |
| 107 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*per_page=3.*>; rel="last"/ ) |
107 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_per_page=3.*>; rel="last"/ ) |
| 108 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*page=4.*>; rel="last"/ ) |
108 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*_page=4.*>; rel="last"/ ) |
| 109 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="last"/ ); |
109 |
->header_like( 'Link' => qr/<http:\/\/.*\?.*firstname=Jonathan.*>; rel="last"/ ); |
| 110 |
}; |
110 |
}; |
| 111 |
- |
|
|