HTTP-Headers-ActionPack

 view release on metacpan or  search on metacpan

lib/HTTP/Headers/ActionPack.pm  view on Meta::CPAN

    HTTP::Headers::ActionPack::LinkHeader
    HTTP::Headers::ActionPack::LinkList
    HTTP::Headers::ActionPack::MediaType
    HTTP::Headers::ActionPack::MediaTypeList
    HTTP::Headers::ActionPack::PriorityList
    HTTP::Headers::ActionPack::WWWAuthenticate
];

my %DEFAULT_MAPPINGS = (
    'link'                => 'HTTP::Headers::ActionPack::LinkList',
    'content-type'        => 'HTTP::Headers::ActionPack::MediaType',
    'accept'              => 'HTTP::Headers::ActionPack::MediaTypeList',
    'accept-charset'      => 'HTTP::Headers::ActionPack::AcceptCharset',
    'accept-encoding'     => 'HTTP::Headers::ActionPack::PriorityList',
    'accept-language'     => 'HTTP::Headers::ActionPack::AcceptLanguage',
    'date'                => 'HTTP::Headers::ActionPack::DateHeader',
    'client-date'         => 'HTTP::Headers::ActionPack::DateHeader', # added by LWP
    'expires'             => 'HTTP::Headers::ActionPack::DateHeader',
    'last-modified'       => 'HTTP::Headers::ActionPack::DateHeader',
    'if-unmodified-since' => 'HTTP::Headers::ActionPack::DateHeader',
    'if-modified-since'   => 'HTTP::Headers::ActionPack::DateHeader',

t/004-inflate.t  view on Meta::CPAN

    );

    {
        my $r = HTTP::Request->new('GET', '/foo', $h->clone);
        $pack->inflate($r);

        my $date = $r->headers->header('date');
        isa_ok($date, 'HTTP::Headers::ActionPack::DateHeader');
        is($date->as_string, 'Mon, 23 Apr 2012 14:14:19 GMT');

        my $content_type = $r->headers->header('content-type');
        isa_ok($content_type, 'HTTP::Headers::ActionPack::MediaType');
        like($content_type->as_string, qr{application/xml.*UTF-8});

        my $link = $r->headers->header('link');
        isa_ok($link, 'HTTP::Headers::ActionPack::LinkList');
        like($link->as_string, qr{http://example\.com/TheBook/chapter2.*previous.*previous chapter});
    }

    SKIP: {
        skip "Plack::Request and HTTP::Message::PSGI are required", 6
            unless $has_plack;
        my $http_request = HTTP::Request->new('GET', '/foo', $h->clone);
        my $r = Plack::Request->new($http_request->to_psgi);
        $pack->inflate($r);

        my $date = $r->headers->header('date');
        isa_ok($date, 'HTTP::Headers::ActionPack::DateHeader');
        is($date->as_string, 'Mon, 23 Apr 2012 14:14:19 GMT');

        my $content_type = $r->headers->header('content-type');
        isa_ok($content_type, 'HTTP::Headers::ActionPack::MediaType');
        like($content_type->as_string, qr{application/xml.*UTF-8});

        my $link = $r->headers->header('link');
        isa_ok($link, 'HTTP::Headers::ActionPack::LinkList');
        like($link->as_string, qr{http://example\.com/TheBook/chapter2.*previous.*previous chapter});
    }

    SKIP: {
        skip "Web::Request is required", 6
            unless $has_plack && $has_web_request;
        my $http_request = HTTP::Request->new('GET', '/foo', $h->clone);
        my $r = Web::Request->new_from_env($http_request->to_psgi);
        $pack->inflate($r);

        my $date = $r->headers->header('date');
        isa_ok($date, 'HTTP::Headers::ActionPack::DateHeader');
        is($date->as_string, 'Mon, 23 Apr 2012 14:14:19 GMT');

        my $content_type = $r->headers->header('content-type');
        isa_ok($content_type, 'HTTP::Headers::ActionPack::MediaType');
        like($content_type->as_string, qr{application/xml.*UTF-8});

        my $link = $r->headers->header('link');
        isa_ok($link, 'HTTP::Headers::ActionPack::LinkList');
        like($link->as_string, qr{http://example\.com/TheBook/chapter2.*previous.*previous chapter});
    }
}

done_testing;



( run in 1.690 second using v1.01-cache-2.11-cpan-524268b4103 )