CGI-Header

 view release on metacpan or  search on metacpan

t/10_basic.t  view on Meta::CPAN

use strict;
use warnings;
use CGI::Header;
use Test::More tests => 11; 
use Test::Exception;
use Test::Output;

subtest 'normalization' => sub {
    my $header = CGI::Header->new;

    my %data = (
        '-Content_Type'  => 'type',
        '-Cookie'        => 'cookies',
        #'-Set_Cookie'    => 'cookies',
        #'-Window_Target' => 'target',
    );

    while ( my ($input, $expected) = each %data ) {
        is $header->_normalize($input), $expected;
    }
};

subtest 'CGI::Header#new' => sub {
    my $header = CGI::Header->new;

    isa_ok $header, 'CGI::Header';
    isa_ok $header->header, 'HASH';
    isa_ok $header->query, 'CGI';

    throws_ok {
        CGI::Header->new(
            header => {
                -Type        => 'text/plain',
                Content_Type => 'text/html',
            }
        )
    } qr{^Property 'type' already exists};
};

subtest 'header fields' => sub {
    my $header = CGI::Header->new( header => { foo => 'bar' } );
    is $header->set( 'Foo' => 'bar' ), 'bar';
    is $header->get('Foo'), 'bar';
    ok $header->exists('Foo');
    is $header->delete('Foo'), 'bar';
};

subtest '#get' => sub {
    my $header = CGI::Header->new(
        header => {
            foo => 'bar',
            bar => 'baz',
        },
    );

    is $header->get('Foo'), 'bar';

    is $header->get('Foo', 'Bar'), 'baz',
        'get last property in scalar context';

    is_deeply(
        [ $header->get('Foo', 'Bar') ],
        [ 'bar', 'baz' ],
        'get multiple props. at once'
    );
};

subtest '#set' => sub {
    my $header = CGI::Header->new;

    throws_ok { $header->set('Foo') } qr{^Odd number of arguments passed},
        'exception with odd number arguments';

    is $header->set( Foo => 'bar' ), 'bar',



( run in 0.669 second using v1.01-cache-2.11-cpan-39bf76dae61 )