File: hello_mount.t

package info (click to toggle)
libcatalyst-engine-psgi-perl 0.13%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 444 kB
  • sloc: perl: 5,307; sh: 48; makefile: 2
file content (43 lines) | stat: -rw-r--r-- 1,098 bytes parent folder | download
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
use strict;
use Test::More;
use Test::Requires qw( Plack::Loader LWP Plack::Builder);
use lib "t/Hello/lib";
use Test::TCP;
use LWP::UserAgent;

use Hello;
Hello->setup_engine('PSGI');

my $app = builder {
    mount '/test' => sub { Hello->run(@_) };
};


test_tcp(
    client => sub {
        my $port = shift;
        my $ua = LWP::UserAgent->new;
        my $res = $ua->get("http://127.0.0.1:$port/test/welcome");
        like $res->content, qr/Welcome/;

        $res = $ua->get("http://127.0.0.1:$port/test/?name=foo");
        is $res->content_type, 'text/plain';
        like $res->content, qr/Hello foo/;

        $res = $ua->post("http://127.0.0.1:$port/test", { name => "bar" });
        like $res->content, qr/Hello bar/;

        $res = $ua->post("http://127.0.0.1:$port/test/", { name => "bar2" });
        like $res->content, qr/Hello bar2/;

        $res = $ua->get("http://127.0.0.1:$port/test/metal");
        like $res->content, qr/Hello Metal/;
    },
    server => sub {
        my $port = shift;
        Plack::Loader->auto(port => $port)->run($app);
    },
);

done_testing;