]> Dogcows Code - chaz/p5-HTTP-AnyUA/blob - t/40-middleware-request-headers.t
add RequestHeaders middleware
[chaz/p5-HTTP-AnyUA] / t / 40-middleware-request-headers.t
1 #!perl
2
3 use warnings;
4 use strict;
5
6 use lib 't/lib';
7
8 use HTTP::AnyUA;
9 use Test::More tests => 5;
10
11 HTTP::AnyUA->register_backend(Mock => '+MockBackend');
12
13 my $any_ua = HTTP::AnyUA->new(ua => 'Mock');
14 my $backend = $any_ua->backend;
15
16 $any_ua->apply_middleware('RequestHeaders',
17 headers => {
18 whatever => 'meh',
19 Foo => 'bar',
20 },
21 );
22
23 my $url = 'http://acme.tld/';
24
25 $any_ua->get($url, {headers => {baz => 'qux'}});
26 my $headers = ($backend->requests)[-1][2]{headers};
27 is $headers->{whatever}, 'meh', 'custom header with GET';
28 is $headers->{foo}, 'bar', 'normalized header';
29 is $headers->{baz}, 'qux', 'request header left intact';
30
31 $any_ua->get($url, {headers => {baz => 'qux', foo => 'moof'}});
32 $headers = ($backend->requests)[-1][2]{headers};
33 is $headers->{foo}, 'moof', 'request header takes precedence';
34
35 $any_ua = HTTP::AnyUA->new(ua => 'Mock');
36 $backend = $any_ua->backend;
37
38 $any_ua->apply_middleware('RequestHeaders',
39 headers => {
40 Foo => 'bar',
41 },
42 override => 1,
43 );
44
45 $any_ua->get($url, {headers => {foo => 'moof'}});
46 $headers = ($backend->requests)[-1][2]{headers};
47 is $headers->{foo}, 'bar', 'custom header takes precedence if override on';
48
This page took 0.033591 seconds and 4 git commands to generate.