use strict; use Test::More; use Plack::Util; { my $headers = []; Plack::Util::header_remove($headers, 'Foo'); is_deeply $headers, [], 'empty headers'; } { my $headers = [ Bar => 'baz' ]; Plack::Util::header_remove($headers, 'Foo'); is_deeply $headers, [ Bar => 'baz' ], 'other headers only'; } { my $headers = [ Foo => 'bar', Bar => 'foo' ]; Plack::Util::header_remove($headers, 'Foo'); is_deeply $headers, [ Bar => 'foo' ], 'header is first'; } { my $headers = [ Bar => 'foo', Foo => 'bar' ]; Plack::Util::header_remove($headers, 'Foo'); is_deeply $headers, [ Bar => 'foo' ], 'header is last'; } { my $headers = [ Bar => 'foo', Foo => 'baz', Baz => 'quux' ]; Plack::Util::header_remove($headers, 'Foo'); is_deeply $headers, [ Bar => 'foo', Baz => 'quux' ], 'header in middle'; } { my $headers = [ Bar => 'foo', Foo => 'baz', Baz => 'foo', Foo => 'quux', Quux => 'bar' ]; Plack::Util::header_remove($headers, 'Foo'); is_deeply $headers, [ Bar => 'foo', Baz => 'foo', Quux => 'bar' ], 'header occurs multiple times'; } { my $headers = [ Foo => 'bar', Bar => 'baz' ]; Plack::Util::header_remove($headers, 'foo'); is_deeply $headers, [ Bar => 'baz' ], 'case-insensitive'; } done_testing;