X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-HTTP-AnyUA;a=blobdiff_plain;f=t%2F40-middleware-content-length.t;fp=t%2F40-middleware-content-length.t;h=e283454b1ca1fb9496b0087479f749da935d01c2;hp=0000000000000000000000000000000000000000;hb=cde5368e2d23e07a80fa67f670afcb99093d0f77;hpb=8063c6418b41f6e09eb3783f27253502a311f5d8 diff --git a/t/40-middleware-content-length.t b/t/40-middleware-content-length.t new file mode 100644 index 0000000..e283454 --- /dev/null +++ b/t/40-middleware-content-length.t @@ -0,0 +1,36 @@ +#!perl + +use warnings; +use strict; + +use lib 't/lib'; + +use HTTP::AnyUA; +use Test::More tests => 3; + +HTTP::AnyUA->register_backend(Mock => '+MockBackend'); + +my $any_ua = HTTP::AnyUA->new(ua => 'Mock'); +my $backend = $any_ua->backend; + +$any_ua->apply_middleware('ContentLength'); + +my $url = 'http://acme.tld/'; +my $content = "hello world\n"; + +$any_ua->post($url, {content => $content}); +my $cl = ($backend->requests)[-1][2]{headers}{'content-length'}; +is $cl, length($content), 'content-length is set correctly with string content'; + +$any_ua->post($url); +$cl = ($backend->requests)[-1][2]{headers}{'content-length'}; +is $cl, undef, 'content-length is not set with no content'; + +my $chunk = 0; +my @chunk = ('some ', 'document'); +my $code = sub { return $chunk[$chunk++] }; + +$any_ua->post($url, {content => $code}); +$cl = ($backend->requests)[-1][2]{headers}{'content-length'}; +is $cl, undef, 'content-length is not set with coderef content'; +