Skip to content

Commit

Permalink
a few more gzip compression tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Nov 6, 2012
1 parent 1e977dd commit 47773e3
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions t/mojo/response.t
Expand Up @@ -436,14 +436,20 @@ isa_ok $res->content, 'Mojo::Content::Single', 'right content';
like $res->content->asset->slurp, qr/hallo welt/, 'right content';

# Parse HTTP 1.1 gzip compressed response
gzip \(my $uncompressed = 'abc' x 1000), \my $compressed;
my $uncompressed = 'abc' x 1000;
gzip \$uncompressed, \my $compressed;
$res = Mojo::Message::Response->new;
$res->parse("HTTP/1.1 200 OK\x0d\x0a");
$res->parse("Content-Type: text/plain\x0d\x0a");
$res->parse("Content-Length: @{[length $compressed]}\x0d\x0a");
$res->parse("Content-Encoding: gzip\x0d\x0a\x0d\x0a");
ok $res->content->is_compressed, 'content is compressed';
is $res->content->progress, 0, 'right progress';
$res->parse(substr $compressed, 0, 1);
is $res->content->progress, 1, 'right progress';
$res->parse(substr $compressed, 1, length($compressed));
is $res->content->progress, length($compressed), 'right progress';
ok !$res->content->is_compressed, 'content is not compressed anymore';
ok $res->is_finished, 'response is finished';
ok !$res->error, 'no error';
is $res->code, 200, 'right status';
Expand All @@ -456,13 +462,16 @@ is $res->headers->content_encoding, undef, 'no "Content-Encoding" value';
is $res->body, $uncompressed, 'right content';

# Parse HTTP 1.1 chunked gzip compressed response
$compressed = undef;
gzip \($uncompressed = 'abc' x 1000), \$compressed;
$uncompressed = 'abc' x 1000;
$compressed = undef;
gzip \$uncompressed, \$compressed;
$res = Mojo::Message::Response->new;
$res->parse("HTTP/1.1 200 OK\x0d\x0a");
$res->parse("Content-Type: text/plain\x0d\x0a");
$res->parse("Content-Encoding: gzip\x0d\x0a");
$res->parse("Transfer-Encoding: chunked\x0d\x0a\x0d\x0a");
ok $res->content->is_chunked, 'content is chunked';
ok $res->content->is_compressed, 'content is compressed';
$res->parse("1\x0d\x0a");
$res->parse(substr($compressed, 0, 1));
$res->parse("\x0d\x0a");
Expand All @@ -471,6 +480,8 @@ $res->parse("\x0d\x0a");
$res->parse(substr($compressed, 1, length($compressed) - 1));
$res->parse("\x0d\x0a");
$res->parse("0\x0d\x0a\x0d\x0a");
ok !$res->content->is_chunked, 'content is not chunked anymore';
ok !$res->content->is_compressed, 'content is not compressed anymore';
ok $res->is_finished, 'response is finished';
ok !$res->error, 'no error';
is $res->code, 200, 'right status';
Expand Down

0 comments on commit 47773e3

Please sign in to comment.