Message-Passing-PSGI

 view release on metacpan or  search on metacpan

lib/Plack/App/Message/Passing.pm  view on Meta::CPAN

    delete $env->{'psgi.errors'};
    delete $env->{'psgix.io'};
    my $input_fh = delete $env->{'psgi.input'};
    my $input = '';
    my $len = 0;
    do {
        $len = $input_fh->read(my $buf, 4096);
        $input .= $buf;
    } while ($len);
    $env->{'psgi.input'} = $input;
    delete $env->{'psgi.streaming'};
    $env->{'psgix.message.passing.clientid'} = refaddr($base_env);
    $env->{'psgix.message.passing.returnaddress'} = $self->return_address;
    $self->output_to->consume(encode_json $env);
    return sub {
        my $responder = shift;
        $self->in_flight->{refaddr($base_env)} = [$base_env, $responder];
    }
}

sub to_app {

t/tx.t  view on Meta::CPAN


my $post_data = 'foobar';
open(my $reader, '<', \$post_data) or die $!;
my $errors = '';
open(my $error_writer, '>', \$errors) or die $!;
my $env = {
    'psgi.errors' => $error_writer,
    'psgi.input' => $reader,
    'psgi.nonblocking' => 1,
    'psgix.io' => 'bar',
    'psgi.streaming' => 'quux',
    'PATH_INFO' => '/',
};
my $env_addr = refaddr($env);

ok !exists($app->in_flight->{$env_addr});
my $res = $app->_handle_request($env);
my $response;
$res->(sub { $response = shift() });
ok exists($app->in_flight->{$env_addr});
is $app->output_to->message_count, 1;



( run in 0.247 second using v1.01-cache-2.11-cpan-4d50c553e7e )