summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--test/perl/input_buffered_read/psgi.pl17
-rw-r--r--test/perl/input_close/psgi.pl8
-rw-r--r--test/test_perl_application.py22
3 files changed, 47 insertions, 0 deletions
diff --git a/test/perl/input_buffered_read/psgi.pl b/test/perl/input_buffered_read/psgi.pl
new file mode 100644
index 00000000..4ca699d7
--- /dev/null
+++ b/test/perl/input_buffered_read/psgi.pl
@@ -0,0 +1,17 @@
+use FileHandle;
+
+my $app = sub {
+ my ($environ) = @_;
+
+ $environ->{'psgi.input'}->read(my $body, 1024);
+
+ open my $io, "<", \$body;
+
+ # This makes $io work as FileHandle under 5.8, .10 and .11.
+ bless $io, 'FileHandle';
+
+ $environ->{'psgix.input.buffered'} = 1;
+ $environ->{'psgi.input'} = $io;
+
+ return ['200', ['Content-Length' => length $body], [$body]];
+};
diff --git a/test/perl/input_close/psgi.pl b/test/perl/input_close/psgi.pl
new file mode 100644
index 00000000..4a2d9bb9
--- /dev/null
+++ b/test/perl/input_close/psgi.pl
@@ -0,0 +1,8 @@
+my $app = sub {
+ my ($environ) = @_;
+
+ $environ->{'psgi.input'}->read(my $body, 1024);
+ $environ->{'psgi.input'}->close();
+
+ return ['200', ['Content-Length' => length $body], [$body]];
+};
diff --git a/test/test_perl_application.py b/test/test_perl_application.py
index dfd8be6c..6803ff76 100644
--- a/test/test_perl_application.py
+++ b/test/test_perl_application.py
@@ -100,6 +100,28 @@ class TestPerlApplication(TestApplicationPerl):
self.post(body='0123456789')['body'] == '0123456789'
), 'input read parts'
+ def test_perl_application_input_buffered_read(self):
+ self.load('input_buffered_read')
+
+ assert (
+ self.post(body='012345')['body'] == '012345'
+ ), 'buffered read #1'
+
+ assert (
+ self.post(body='9876543210')['body'] == '9876543210'
+ ), 'buffered read #2'
+
+ def test_perl_application_input_close(self):
+ self.load('input_close')
+
+ assert (
+ self.post(body='012345')['body'] == '012345'
+ ), 'input close #1'
+
+ assert (
+ self.post(body='9876543210')['body'] == '9876543210'
+ ), 'input close #2'
+
@pytest.mark.skip('not yet')
def test_perl_application_input_read_offset(self):
self.load('input_read_offset')