X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-HTTP-AnyUA;a=blobdiff_plain;f=t%2F40-middleware-request-headers.t;fp=t%2F40-middleware-request-headers.t;h=c15736a28e8b8938bc9dfbc83a525e3d88134555;hp=0000000000000000000000000000000000000000;hb=71cd1b88c0f201ac30cf44a4112810b3eeac7ec0;hpb=918be01504107763e4febdb4ed74aeda599fd33d diff --git a/t/40-middleware-request-headers.t b/t/40-middleware-request-headers.t new file mode 100644 index 0000000..c15736a --- /dev/null +++ b/t/40-middleware-request-headers.t @@ -0,0 +1,48 @@ +#!perl + +use warnings; +use strict; + +use lib 't/lib'; + +use HTTP::AnyUA; +use Test::More tests => 5; + +HTTP::AnyUA->register_backend(Mock => '+MockBackend'); + +my $any_ua = HTTP::AnyUA->new(ua => 'Mock'); +my $backend = $any_ua->backend; + +$any_ua->apply_middleware('RequestHeaders', + headers => { + whatever => 'meh', + Foo => 'bar', + }, +); + +my $url = 'http://acme.tld/'; + +$any_ua->get($url, {headers => {baz => 'qux'}}); +my $headers = ($backend->requests)[-1][2]{headers}; +is $headers->{whatever}, 'meh', 'custom header with GET'; +is $headers->{foo}, 'bar', 'normalized header'; +is $headers->{baz}, 'qux', 'request header left intact'; + +$any_ua->get($url, {headers => {baz => 'qux', foo => 'moof'}}); +$headers = ($backend->requests)[-1][2]{headers}; +is $headers->{foo}, 'moof', 'request header takes precedence'; + +$any_ua = HTTP::AnyUA->new(ua => 'Mock'); +$backend = $any_ua->backend; + +$any_ua->apply_middleware('RequestHeaders', + headers => { + Foo => 'bar', + }, + override => 1, +); + +$any_ua->get($url, {headers => {foo => 'moof'}}); +$headers = ($backend->requests)[-1][2]{headers}; +is $headers->{foo}, 'bar', 'custom header takes precedence if override on'; +