The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More tests=> 23;
use lib qw( ./lib ../lib );
use Egg::Helper;

ok $e= Egg::Helper->run( Vtest=> {
  vtest_plugins=> [qw/ HTTP::HeadParser /],
  }), q{load plugin.};

my @head= $e->helper_yaml_load(join '', <DATA>);

can_ok $e, 'parse_http_header';

# request header.
ok my $req= $e->parse_http_header($head[0]),
  q{my $req= $e->parse_http_header($head[0])};
isa_ok $req, 'HASH';
is $req->{method},          'GET / HTTP/1.1',
  q{$req->{method}};
is $req->{accept},          'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*',
  q{$req->{accept}};
is $req->{referer},         'http://domain.name/',
  q{$req->{referer}};
is $req->{accept_language}, 'en-us',
  q{$req->{accept_language}};
is $req->{accept_encoding}, 'gzip, deflate',
  q{$req->{accept_encoding}};
is $req->{user_agent},      'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET)',
  q{$req->{user_agent}};
is $req->{host},            'domain.name',
  q{$req->{host}};
is $req->{connection},      'Keep-Alive',
  q{$req->{connection}};
is $req->{cookie},          'test=OK;',
  q{$req->{cookie}};

# response header.
ok my $res= $e->parse_http_header($head[1]),
  q{my $res= $e->parse_http_header($head[1])};
isa_ok $res, 'HASH';
is $res->{status},         'HTTP/1.1 200 OK',
  q{$res->{status}};
is $res->{connection},     'close',
  q{$res->{connection}};
is $res->{server},         'Apache',
  q{$res->{server}};
is $res->{cache_control},  'private, max-age=0',
  q{$res->{cache_control}};
is $res->{content_type},   'text/xml; charset=utf-8',
  q{$res->{content_type}};

ok ! $res->{content1}, q{! $res->{content1}};
ok ! $res->{content2}, q{! $res->{content2}};
ok ! $res->{content3}, q{! $res->{content3}};

__DATA__
--- |
  GET / HTTP/1.1
  Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
  Referer: http://domain.name/
  Accept-Language: en-us
  Accept-Encoding: gzip, deflate
  User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET)
  Host: domain.name
  Connection: Keep-Alive
  Cookie: test=OK;
--- |
  HTTP/1.1 200 OK
  Connection: close
  Server: Apache
  Cache-Control: private, max-age=0
  Content-Type: text/xml; charset=utf-8
  
  content1
  content2
  content3