+#!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';
+