APR-Emulate-PSGI

 view release on metacpan or  search on metacpan

t/20_cgi_mode.t  view on Meta::CPAN

        $r->connection()->remote_ip(),
        '192.168.1.1',
        'Remote address is available.',
    );
}

is(
    $r->method(),
    'POST',
    'Request method is available.',
);

is(
    $r->headers_in()->header('CONTENT_TYPE'),
    'application/x-www-form-urlencoded',
    'Content-type is available.',
);

is(
    $r->headers_in()->header('CONTENT_LENGTH'),
    length($request_body),
    'Content length is available.',
);

is(
    $r->headers_in()->header('HTTP_HOK'),
    'gahaha',
    'Custom header is available.',
);

{
    local *STDIN = $fh_in;
    my $actual;
    is(
        $r->read($actual, length($request_body)),
        length($request_body),
        'POST content is read.',
    );

    is(
        $actual,
        $request_body,
        'POST content is correct.',
    );
}

# Verify that data comes out as expected (response).

is(
    $r->headers_out()->add('X-Foo' => 'Bar'),
    1,
    'Header added.',
);

my $headers_fh  = IO::File->new_tmpfile();
{
    local *STDOUT = $headers_fh;
    is(
        $r->content_type('text/html'),
        'text/html',
        'Content-type is set.',
    );
}

$headers_fh->seek(0, 0);  # Reset filehandle back to the beginning.
is(
    $headers_fh->getline(),
    "HTTP/1.1 200 OK\n",
    'Received expected status line.',
);

is(
    $headers_fh->getline(),
    "Content-Type: text/html\n",
    'Received expected content type.',
);

is(
    $headers_fh->getline(),
    "X-Foo: Bar\n",
    'Received expected custom header.',
);

is(
    $headers_fh->getline(),
    "\n",
    'Received end-of-headers indicator.',
);

my $body_fh = IO::File->new_tmpfile();
{
    local *STDOUT = $body_fh;
    #my $length = $r->print($response_body);
    is(
        #$length,
        $r->print($response_body),
        length($response_body),
        'Content is printed.',
    );

}

$body_fh->seek(0, 0);  # Reset filehandle back to the beginning.
is(
    $body_fh->getline(),
    $response_body,
    'Received expected content.',
);



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