|
| 1 | +use strict; |
| 2 | +use warnings; |
| 3 | + |
| 4 | +use Encode; |
| 5 | +use MetaCPAN::Server::Test; |
| 6 | +use MetaCPAN::TestHelpers; |
| 7 | +use Test::More; |
| 8 | + |
| 9 | +{ |
| 10 | + no warnings 'redefine'; |
| 11 | + |
| 12 | + sub get_ok { |
| 13 | + my ( $cb, $url, $desc, $headers ) = @_; |
| 14 | + ok( my $res = $cb->( GET $url ), $desc || "GET $url" ); |
| 15 | + is( $res->code, 200, 'code 200' ); |
| 16 | + |
| 17 | + test_cache_headers( $res, $headers ); |
| 18 | + |
| 19 | + return $res; |
| 20 | + } |
| 21 | +} |
| 22 | + |
| 23 | +sub get_json_ok { |
| 24 | + return decode_json_ok( get_ok(@_) ); |
| 25 | +} |
| 26 | + |
| 27 | +test_psgi app, sub { |
| 28 | + my $cb = shift; |
| 29 | + |
| 30 | + # find (/release/DIST) |
| 31 | + get_json_ok( |
| 32 | + $cb, |
| 33 | + '/release/Moose', |
| 34 | + 'GET /release/dist', |
| 35 | + { |
| 36 | + # ??? |
| 37 | + cache_control => 'private', |
| 38 | + surrogate_key => |
| 39 | + 'content_type=application/json content_type=application', |
| 40 | + surrogate_control => undef, |
| 41 | + } |
| 42 | + ); |
| 43 | + |
| 44 | + # get (/release/AUTHOR/NAME) |
| 45 | + get_json_ok( |
| 46 | + $cb, |
| 47 | + '/release/DOY/Moose-0.01', |
| 48 | + 'GET /release/DOY/Moose-0.01', |
| 49 | + { |
| 50 | + # ??? |
| 51 | + } |
| 52 | + ); |
| 53 | + |
| 54 | + # versions (/release/versions/DIST) |
| 55 | + get_json_ok( |
| 56 | + $cb, |
| 57 | + '/release/versions/Moose', |
| 58 | + 'GET /release/versions/Moose', |
| 59 | + { |
| 60 | + # ??? |
| 61 | + } |
| 62 | + ); |
| 63 | + |
| 64 | + # latest_by_distribution (/release/latest_by_distribution/DIST) |
| 65 | + get_json_ok( |
| 66 | + $cb, |
| 67 | + '/release/latest_by_distribution/Moose', |
| 68 | + 'GET /release/latest_by_distribution/Moose', |
| 69 | + { |
| 70 | + # ??? |
| 71 | + } |
| 72 | + ); |
| 73 | +}; |
| 74 | + |
| 75 | +done_testing; |
| 76 | + |
0 commit comments