get '/javascripts/:file' => sub { my ($file) = splat; send_file( '/javascripts/' . params->{file}, streaming => 1, content_type => 'text/javascript', ); }; #### response_status_is [ GET => '/javascripts/test.js' ], 200, 'response status is 200 for /js/test.js'; response_content_is [ GET => '/javascripts/test.js' ], 'var test = 1;', 'Fetched JS'; response_headers_include [ GET => '/javascripts/test.js' ], [ 'Content-Type' => 'text/javascript' ], "MIME type set for JS"; #### not ok 4 - Fetched JS # Failed test 'Fetched JS' # at t/002_index_route.t line 14. # got: 'GLOB(0x31fa178)' # expected: 'var test = 1;' not ok 5 - MIME type set for JS # Failed test 'MIME type set for JS' # at t/002_index_route.t line 15. # Looks like you failed 2 tests of 5. #### 0 Dancer::Response=HASH(0x23dca98) 'content' => GLOB(0x23eb3e8) -> *Dancer::FileUtils::$fh FileHandle({*Dancer::FileUtils::$fh}) => fileno(7) 'encoded' => 0 'forward' => '' 'halted' => 0 'headers' => HTTP::Headers=HASH(0x23e0060) 'content-type' => MIME::Type=HASH(0x1706478) 'MT_encoding' => '8bit' 'MT_extensions' => ARRAY(0x1706580) 0 'js' 'MT_simplified' => 'application/javascript' 'MT_type' => 'application/javascript' 'last-modified' => 'Fri, 01 Mar 2013 15:31:21 GMT' 'pass' => 0 'status' => 200