Subject: | Catalyst::Test head parsing does not check content type |
In the "mangle_response" sub does not check that the content-type is HTML. This can lead to
failing tests when they should not fail.
require HTML::HeadParser;
my $parser = HTML::HeadParser->new();
$parser->xml_mode(1) if $resp->content_is_xhtml;
$parser->utf8_mode(1) if $] >= 5.008 && $HTML::Parser::VERSION >= 3.40;
$parser->parse( $resp->content );
For example, this response was causing problems:
Cache-Control: no-store, no-cache, must-revalidate
Content-Length: 24043
Content-Type: audio/mp4a-latm
Expires: Wed, 31 Dec 1969 23:59:59 GMT
Content-Disposition: attachment; filename*=UTF-8''trumpet.m4a
(Warnings are fatal): Parsing of undecoded UTF-32 at
/home/moseley/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/Catalyst/Test.pm line
314.