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 |
- |
|
|