File: test.t

package info (click to toggle)
libhttp-request-params-perl 1.02-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 80 kB
  • sloc: perl: 130; makefile: 2
file content (64 lines) | stat: -rw-r--r-- 1,844 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/perl
use Test::More qw[no_plan];
use strict;
$^W = 1;

BEGIN {
    require_ok 'CGI';
    require_ok 'Email::MIME';
    require_ok 'Email::MIME::Modifier';
    require_ok 'Email::MIME::ContentType';
    require_ok 'HTTP::Request';
    require_ok 'HTTP::Message';
    require_ok 'Class::Accessor::Fast';
    use_ok 'HTTP::Request::Params';
    use_ok 'HTTP::Request::Common';
    use_ok 'HTTP::Request';
}

my $get_request = HTTP::Request::Params->new({
                    req => get_request(),
                  });
test_request($get_request);

my $post_request = HTTP::Request::Params->new({req => post_request()});
test_request($post_request);

my $post_upload_request = HTTP::Request::Params->new({req => post_upload_request()});
test_request($post_upload_request);

like $post_upload_request->params->{myself}, qr/sub post_upload_request/, 'found myself';
is scalar($post_upload_request->mime->parts), 3;

sub test_request {
    isa_ok $get_request, 'HTTP::Request::Params';
    isa_ok $get_request->req, 'HTTP::Request';
    isa_ok $get_request->mime, 'Email::MIME';
    is ref($get_request->params), 'HASH', 'params is HASH';
    is ref($get_request->params->{multi}), 'ARRAY', 'params->{multi} is ARRAY';
    ok !ref($get_request->params->{single}), 'params->{single} is singular';
    is $get_request->params->{single}, 'one', 'single is one';
}

sub get_request {
    HTTP::Request->new(GET => q[http://example.com/?multi=1;multi=2;single=one]);
}

sub post_request {
<<__REQ__;
POST http://example.com?multi=1

multi=2;single=one
__REQ__
}

sub post_upload_request {
my $req = POST q[http://exmaple.com/?multi=2],
               Content_Type => 'form-data',
               Content => [
                   multi => 1,
                   single => 'one',
                   myself => [ $0 ],
               ];
return $req;
}